1998or2
@1998or2
Агрессивное программирование

Как в Джанго модели сделать обязательным одно из двух полей?

Такой вопрос вообщем,

Есть модель:
Phone(Model):
iphone = charfield...bla-bla-bla
android = charfield bla bla bla


Будет форма для ввода по этим полям, и внизу кнопочка Отправить. Нужно чтоб было так, чтоб пользователь мог заполнить одно из двух полей, или оба поля сразу. Но не пустое — при пустых обоих полях чтоб была ошибка. А одно поле пустое, второе заполненное — чтоб разрешало, и оба поля заполнено — тоже чтоб разрешало.

Догадываюсь, что это нужно будет реализовывать в forms.py или views.py, но подскажите, как? И что указывать в модели - blank=True на оба поля?
  • Вопрос задан
  • 2384 просмотра
Пригласить эксперта
Ответы на вопрос 1
@maksam07
1. В модели - blank=True на оба поля
2. В forms.py делаешь класс на основе модели. Собственно у тебя будут доступны к заполнению оба поля, так же они оба могут быть пустыми.
2.1. В классе создаешь метод аля clean(), в котором очищаешь эти поля от гадостей, а потом делаешь проверку типа:
if not iphone and not android:
    raise ValidationError("Укажи хоть что-то")
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы