Django中的Form.is_valid

时间:2015-03-18 23:24:37

标签: python django django-forms

我在Django中遇到表单验证问题。 我在views.py中有这个:

def n_visita(request, id_c):
    if request.method == 'POST':
        formulario = FormularioVisita(data=request.POST)
        if formulario.is_valid():
            ···
            save_form.save()
            return HttpResponseRedirect('/')
    else:
        formulario = FormularioVisita(idc=id_c)
        ···
        return...

这在forms.py中:

class FormularioVisita(ModelForm):
    class Meta:
        model = Visita

    def __init__(self, idc=None, *args, **kwargs):
        super(FormularioVisita, self).__init__(*args, **kwargs)
        self.fields["IdCita"].queryset = Citas.objects.filter(id=idc,Dia=date.today(),espera=True,estado=True)

这将返回一个注册表(因为我提供" id"),在" select"中显示该选项,一切正常。 但是当我点击" Save"按钮Django说"选择一个有效的选项"并且没有在"中选择"中显示一个选项。 我能做什么?我需要更改字段以显示queryset返回的唯一选项吗?

1 个答案:

答案 0 :(得分:1)

当你在POST块中实例化表单时,你需要传入idc。