2010-12-05 48 views
0

我有一个真正令人讨厌的问题,form.is_valid()总是在我的一个表单上返回false,而这只发生在我手动定义模型表单中的字段时,特别是使用ModelChoiceField和ModelMultipleChoiceFields传入我自己的自定义查询集django形式is_valid()总是返回false

location = forms.ModelChoiceField(required=False, widget = forms.Select(), queryset = Location.objects.none()) 

我无法找到良好的文档有关ModelForm.is_valid()的方式很多,而且基本上,如果我不把它的一切工作正常。除此之外,我对此感到满意,因为每个Django表格示例都会将此电话打到is_valid()

所以我想我的问题是:

  1. 是否还好没有检查形式是有效的?
  2. 如果不是,有什么想法总是返回false?

感谢,

迈克

回答

2

你应该检查你的表格是否有效,然后你可以从那里去,但当我遇到同样的问题时,我发现我的工作是:

def add(request): 
form = SearchForm() 
add_form = AddForm() 
if request.method == 'GET': 
    add_form = AddForm(request.GET) 
    if add_form.is_valid(): 
     return render_to_response('inventory_app/add.html', {'form': form, 'add_form': add_form, 'message': 'Sent Sucessfully'}, context_instance=RequestContext(request)) 
    else: 
     return render_to_response('inventory_app/add.html', {'form': form, 'add_form': add_form}, context_instance=RequestContext(request)) 

随着add_form.is_valid前行的重点上线:

add_form = AddForm(request.GET) 
    if add_form.is_valid(): 

如果你不申请的形式,则.is_valid语句总是返回false。