我在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返回的唯一选项吗?
答案 0 :(得分:1)
当你在POST块中实例化表单时,你需要传入idc。