Проблема моделей Джанго - PullRequest
1 голос
/ 26 августа 2011

У меня большая проблема.Я реализовал форму, которая содержит различные поля, среди которых EmailFIeld должен быть ФАКУЛЬТАТИВНЫМ.

Вот модель:

email = models.EmailField(max_length=50,blank=True,default='no@address.spec',
             verbose_name=_('email'), help_text=_('Email'))

Но когда я выполняю проверку формы и возвращаю JSON с возможными ошибками, я всегда получаю:

{'errors':'Enter a valid e-mail address'}

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

Ответы [ 2 ]

3 голосов
/ 26 августа 2011

Как я помню, по умолчанию означает, что это поле не будет пустым, если пользователь не удалит указанный адрес.Так что эта ошибка проверки может быть из-за .spec , попробуйте заменить ее на .com .И вы также можете добавить null = True в вашей модели и required = False в классе формы.

0 голосов
/ 26 августа 2011

Если вы изначально настроили модель с необходимостью электронной почты, ее изменения и запуска syncdb недостаточно, чтобы изменить базовый SQL, чтобы поле не было обязательным.

Если у вас нетважные данные и можете позволить себе стереть БД, вы можете запустить python manage.py flush.Это очистит все данные и запустит syncdb с нуля.

Лучший вариант - запустить миграцию базы данных, чтобы обновить sql до моделей django.Безусловно, самый популярный вариант с Django - Юг .Это инструмент, который практически необходим для использования, сейчас самое время добавить его в свой репертуар.

...