2015-03-18 83 views
0

我在Django中的表单验证有问题。 我有这个在views.py:Django中的Form.is_valid

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”),表明在该选项“选择”,一切正常。 但是,当我点击“保存”按钮Django说“选择一个有效的选项”,而不是在“选择”中显示我一个选项。 我能做什么?我需要更改字段以显示查询集返回的唯一选项?

回答

1

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

+0

formulario = FormularioVisita(data = request.POST,id = id_c) 是否正确? – 2015-03-19 00:20:17

+1

formulario = FormularioVisita(data = request.POST,idc = id_c) – 2015-03-19 04:18:43

+0

好的,没错,但不起作用。 Django仍然会说同样的信息。 – 2015-03-19 16:52:08