Я написал себе форму:
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
Iполучить ошибки, которые мне хотелось бы видеть в шаблоне.Я также уже попробовал:
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
Что именно я делаю не так?
ОБНОВЛЕНИЕ: на мой взгляд:
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 ()