我寫我自己的一種形式:Django表單模板錯誤
class Autopoweroff_Form(forms.Form):
autopoweroff_groups = forms.CharField(required=True)
autopoweroff_groups_hosts = forms.CharField(required=True)
autopoweroff_groups_start = forms.CharField(required=True)
autopoweroff_groups_end = forms.CharField(required=True)
autopoweroff_groups_startup_delay = forms.CharField(required=True)
autopoweroff_groups_idle_time = forms.CharField(required=True)
現在我知道,我不會有明確設置reuqired = true,但現在承擔它吧。 無論如何,讓我們繼續。
現在,因爲我討厭在視圖中做驗證等我剛纔定義爲形式的更新功能:
def update(self, data):
if not self.is_bound and data is not None:
raise Exception()
if self.is_valid():
curr_group = self.cleaned_data['autopoweroff_groups']
...
,然後在我看來,把它像這樣:
if request.method == 'POST':
form = Autopoweroff_Form(data=request.POST)
form.update(data=request.POST)
return HttpResponseRedirect('/admin/thin/create_autopoweroff')
else:
form = Autopoweroff_Form()
...
現在的問題是,如果我不在表單中輸入任何內容,表單將按原樣返回,而不會顯示任何錯誤。我也知道,它不會做任何事情,因爲:
https://docs.djangoproject.com/en/1.3/ref/forms/validation/
事實上,Django將目前完全消滅cleaned_data字典是否有形式的任何錯誤。但是,這種行爲在未來可能會發生變化,因此,首先清理自己並不是一個好主意。
,如果我嘗試:
def update(self, data):
if not self.is_bound and data is not None:
raise Exception()
if self.is_valid():
curr_group = self.cleaned_data['autopoweroff_groups']
...
else:
print self.errors
,我感到我本來希望在模板中看到的錯誤。 我也試過了:
def clean_autopoweroff_groups(self):
autopoweoff_groups = self.cleaned_data.get('autopoweroff_groups', "")
if autopoweoff_groups == '':
print "Validation Error"
raise forms.ValidationError('Please Enter A Name')
return autopoweroff_groups
我究竟在做什麼錯?
UPDATE: 在我看來:
if request.method == 'POST':
form = Autopoweroff_Form(data=request.POST)
if form.is_valid():
form.update(data=request.POST)
return HttpResponseRedirect('/admin/thin/create_autopoweroff')
else:
form = Autopoweroff_Form()
,並在我的表單中刪除,如果self.is_valid()
非常感謝你 –