Как мне создать Django ModelForm, чтобы его поля иногда были обязательны, а иногда нет? - PullRequest
0 голосов
/ 01 июня 2010

Хорошо, вот вопрос. Представьте, что у меня есть ModelForm, который имеет только два поля. как этот:

class ColorForm(forms.Form):
    color_by_name = forms.CharField()
    color = forms.IntegerField(widget = forms.Select(choices=COLOR_CHOICES))

Таким образом, пользователь может либо ввести имя цвета, либо выбрать его из списка. Цвет обязателен, но это не значит, что пользователь должен вводить его вручную. Там я ставлю валидацию, чтобы мой код проверял, выбрал ли пользователь цвет в выпадающем списке, а если нет, то он должен написать его вручную?

1 Ответ

7 голосов
/ 01 июня 2010

Сделайте их обоих required=False, но напишите метод clean(), который проверяет одно или другое. См. документацию проверки для примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...