Поле Django, необходимое в чистом методе в классе формы - PullRequest
0 голосов
/ 29 октября 2009

Я хочу переопределить обязательный атрибут для поля в чистом методе моего файла формы:

class NewUserFullForm(NewUserForm):

REGEX_PHONE = '^(\+[0-9]{2})[ \.\-]?[0-9][ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$'

phone = forms.RegexField(REGEX_PHONE, help_text='Ex : +33 1 34 12 52 30')
fax = forms.RegexField(REGEX_PHONE, help_text='Ex : +33 1 34 12 52 30',  required=False)
gsm = forms.RegexField(REGEX_PHONE, help_text='Ex : +33 6 34 12 52 30',  required=False)

def clean(self):
   if self.cleaned_data["asso_waldec"] == True:
      self.fields['phone'].required = True

Но мой метод очистки не работает

Ответы [ 2 ]

2 голосов
/ 29 октября 2009

Эй! Вы смотрели на свой документ / примеры:

Проверка Джанго

Может быть, это прояснит.

0 голосов
/ 29 октября 2009

Одна проблема состоит в том, что функция clean должна возвращать полный набор очищенных данных (см. docs ). Вместо того, чтобы менять атрибут 'required', я считаю, что вы должны выполнить проверку, чтобы убедиться, что «phone» пуст, и вызвать «ValidationError», описывающую проблему.

Кроме того, поскольку ваша форма наследуется от 'NewUserForm', вам следует вызвать super(NewUserFullForm, self).clean(), чтобы гарантировать, что унаследованные поля также очищены.

...