В соответствии с документацией Django Model, null
и blank
по умолчанию установлены False
. Итак, каково будет значение по умолчанию для IntegerField
, если я не предоставил его явно? Кроме того, будут полезны CharField
и другие.Каковы значения по умолчанию для полей Django?
ответ
Как мы можем видеть в методах полевых
def has_default(self):
"""
Returns a boolean of whether this field has a default value.
"""
return self.default is not NOT_PROVIDED
def get_default(self):
"""
Returns the default value for this field.
"""
if self.has_default():
if callable(self.default):
return self.default()
return force_text(self.default, strings_only=True)
if (not self.empty_strings_allowed or (self.null and
not connection.features.interprets_empty_strings_as_nulls)):
return None
return ""
Было бы None
для IntegerField
из empty_strings_allowed = False
, и после этого на создание или сохранение, вы получите ValidationError()
, потому что значение в не int()
как для CharField вы получите «пустую строку», потому что CharField
имеет empty_strings_allowed = True
PS избегать использования null=True
на CharField
и TextField
, как не в Django documentaion говорит
Избегайте использования нуль на струнных основе таких областях, как CharField и TextField, потому что пустые строковые значения всегда будут храниться в виде пустых строк, а не NULL. Если в строковом поле имеет значение null = True, то означает, что он имеет два возможных значения для «no data»: NULL и пустую строку . В большинстве случаев избыточно иметь два возможных значения для «нет данных», соглашение Django должно использовать пустую строку, а не NULL.
- 1. Каковы значения по умолчанию для StreamReader?
- 2. Каковы значения по умолчанию для lintOptions?
- 3. Каковы значения атрибутов по умолчанию для тегов
- 4. Джанго - Регистрационная форма значения полей по умолчанию
- 5. Django задает значения по умолчанию
- 6. Django отображает значения по умолчанию для шаблонов
- 7. Django-Registration: переопределение полей по умолчанию
- 8. Инициализация массива объектов, каковы значения по умолчанию
- 9. Каковы URL-адреса по умолчанию для системы аутентификации пользователей Django?
- 10. Разрешение конечных полей принимать значения по умолчанию
- 11. Zend_Db игнорирует мои значения полей по умолчанию!
- 12. Каковы поля графика ggplot2 по умолчанию?
- 13. Каковы значения по умолчанию для невыделенных граней в XSD
- 14. Каковы значения по умолчанию для массива char в Java?
- 15. Каковы значения по умолчанию для темы Holo на Android 4.0?
- 16. Что требуется strtotime для создания строки/Каковы значения по умолчанию?
- 17. Каковы значения по умолчанию для параметров метода VBA?
- 18. Каковы значения по умолчанию для элементов структуры в C?
- 19. Каковы возможные варианты и значения по умолчанию для CJuiAutoComplete?
- 20. Каковы типы полей по умолчанию, доступные при вызове field_create_field?
- 21. Изменение виджета по умолчанию для полей даты в Django admin
- 22. Настройка значений по умолчанию для полей в django?
- 23. Каковы значения по умолчанию для Binding.Mode = По умолчанию для элементов управления WPF?
- 24. Как получить значения по умолчанию для полей в запросе DB2?
- 25. Как добавить значения по умолчанию для полей ввода в Thymeleaf
- 26. Значения по умолчанию для полей в новой строке таблицы данных
- 27. Значения по умолчанию для отсутствующих полей в левом соединении?
- 28. Сбросить стиль ввода полей в значения по умолчанию для браузера
- 29. Как установить значения по умолчанию для односкатных полей jqGrid
- 30. sql как установить значения по умолчанию для нулевых полей
У меня нет установки django под рукой, и я не буду беспокоиться о том, чтобы найти исходный код, но если вы не предоставляете значение по умолчанию, значение по умолчанию для любого поля будет ' None ", который переводится в SQL' NULL' - который, конечно же, должен вызывать исключение на уровне базы данных (по крайней мере, в любой соответствующей SQL-базе данных), если вы оставите в определении поля значение null = False. Но вам лучше попытаться выяснить это самостоятельно (дело в пять минут, если у вас уже есть проект django). –
@brunodesthuilliers, спасибо. – norbertpy