Django,UnboundLocalError:在赋值之前引用了局部变量“nombre”视图.py

2024-09-30 18:29:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题与一个帖子请求的形式,这是如何模型.py是:

class Invitaciones(models.Model):
    class Meta:
        verbose_name_plural = "Invitaciones"

    tipos_cedula = (
        ("Venezolano", "Venezolano"),
        ("Extranjero", "Extranjero"),
    )
    estados = (
        ("Disponible", "Disponible"),
        ("Usado", "Usado"),
    )
    def random_string():
        return str(random.randint(10000, 99999))

    año = int(datetime.datetime.now().year)
    nombre = models.CharField(max_length=300, null=False, blank=False)
    apellido = models.CharField(max_length=300, null=False, blank=False)
    tipo_cedula = models.CharField(choices=tipos_cedula, max_length=50, null=False, blank=False)
    cedula = models.PositiveIntegerField(null=False, blank=False)
    codigo = models.CharField(max_length=99999999, default = random_string, null=False, blank=False, editable=False)
    usuario = models.ForeignKey(User, on_delete=models.PROTECT, null=False, blank=False)
    estado = models.CharField(max_length=250, choices=estados, default="Disponible", null=False, blank=False)
    fecha = models.DateField(default=timezone.now, validators=[validators.MaxValueValidator(datetime.date(año, 12, 31),message="No puedes elegir una fecha que este mas alla de este año"), validators.MinValueValidator(datetime.date.today(),message="No puedes elegir una fecha anterior a la de hoy")])
    envio = models.DateField(auto_now=True)

def __str__(self):
    return '%s %s %s %s %s' % (self.usuario, self.nombres, self.apellidos, self.cedula, self.codigo,)

这就是视图.py是:

^{pr2}$

我得到的错误是:

Traceback (most recent call last):
  File "C:\Users\Kuipumu\Envs\py1\lib\site-packages\django\core\handlers\exception.py", line 35, in inner
    response = get_response(request)
  File "C:\Users\Kuipumu\Envs\py1\lib\site-packages\django\core\handlers\base.py", line 128, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\Kuipumu\Envs\py1\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\Kuipumu\Envs\py1\lib\site-packages\django\contrib\auth\decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "C:\Users\Kuipumu\Envs\py1\lib\site-packages\django\views\generic\base.py", line 69, in view
    return self.dispatch(request, *args, **kwargs)
  File "C:\Users\Kuipumu\Envs\py1\lib\site-packages\django\views\generic\base.py", line 89, in dispatch
    return handler(request, *args, **kwargs)
  File "C:\Users\Kuipumu\Desktop\Oricao\dist\cuentas\views.py", line 122, in post
    args = {'form': form, 'nombre': nombre, 'apellido': apellido, 'tipo_cedula': tipo_cedula, 'fecha': fecha, 'cedula': cedula, 'estado': estado,}UnboundLocalError: local variable 'nombre' referenced before assignment

我不知道为什么我会得到这个错误,我把模型,视图,和表单建立在另一个已经完美工作的模型,视图和表单的基础上。可以通过管理视图注册该对象,但不能扰乱用户视图。为什么要获取本地变量?。在


Tags: inpyselffalsemodelsliblinenull
1条回答
网友
1楼 · 发布于 2024-09-30 18:29:24
def post(self, request):

        form = InvitacionesForm(request.POST)
        if form.is_valid():
            nombre = form.cleaned_data['nombre']  
            apellido = form.cleaned_data['apellido']  
            tipo_cedula = form.cleaned_data['tipo_cedula']
            cedula = form.cleaned_data['cedula']
            fecha = form.cleaned_data['fecha']
            post = form.save(commit=False)
            post.user = request.user
            post.usuario_id = post.user.id
            post.save()
            form = InvitacionesForm()
            messages.success(request, 'El pase de invitación a sido registrado.')
            return redirect('pases')
        else:    
            messages.error(request, 'Por favor, verifica tus datos') 
            form = InvitacionesForm()
            return redirect('pases')

        args = {'form': form}  
        return render(request, self.template_name, args)

你不能像外面那样访问form.valid()内部的字段

相关问题 更多 >