У меня есть поле «адрес» в моей модели Django, что я хочу быть необязательными:Confused о том, как сделать Django модель поле опционального
class Home(models.Model):
address = models.CharField(max_length=256, blank=True, default=None)
city = models.CharField(max_length=25)
Я хочу, чтобы это было дополнительное поле в моей базе данных, но я не установил «null = True», потому что documentation говорит
«Избегайте использования нулей в строковых методах, таких как CharField и TextField, потому что пустые значения строк всегда будут храниться как пустые строки, а не как NULL. на основе поля имеет значение null = True, это означает, что у него есть два возможных значения для «no data»: NULL и пустая строка. В большинстве случаев избыточно иметь две возможности для значений «нет данных», соглашение Django должно использовать пустую строку, а не NULL ».
Однако, когда я создаю объект Home с помощью этой команды:
Home.objects.create(city='Chicago')
Я получаю сообщение об ошибке:
IntegrityError: null value in column 'address' violates not-null constraint.
не Должен ли я добавить "нуль = True" в поле адреса, несмотря на что говорят документы, чтобы сделать его необязательным? Если нет, как его следует объявить, чтобы я мог создавать новые объекты Home без повышения этой ошибки?
Может вы хотите установить значение по умолчанию? https://docs.djangoproject.com/ru/1.10/ref/models/fields/#default –
Также см. Ответы на этот вопрос. http://stackoverflow.com/questions/755857/default-value-for-field-in-django-model –
Я сделал. Он установлен на «Нет». Я что-то упускаю? – William