2010-12-05 162 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。