Если поле модели - это выбор или внешний ключ, виджет на странице - это вход выбора или радио, если вы это укажете. Django помещает "---------" в первый элемент как невыбранное значение. Как я могу отменить это или даже удалить? Я помню, как читал, как это сделать, но больше не могу найти.
Как удалить невыделенный элемент при выборе и радио ввода в Django
Ответы (3)
См .: http://docs.djangoproject.com/en/dev/topics/forms/modelforms/
Если для поля модели заданы варианты выбора, тогда для виджета поля формы будет установлено значение «Выбрать», причем варианты будут исходить из вариантов выбора поля модели. Варианты выбора обычно включают пустой вариант, который выбран по умолчанию. Если поле является обязательным, это заставляет пользователя сделать выбор. Пустой вариант не будет включен, если в поле модели указано blank = False и явное значение по умолчанию (вместо этого изначально будет выбрано значение по умолчанию).
По умолчанию виджет
<select>
, используемыйModelChoiceField
, будет иметь пустой вариант вверху списка. Вы можете изменить текст этой метки (которая по умолчанию - «---------») с помощью атрибутаempty_label
, или вы можете полностью отключить пустую метку, установивempty_label=None
:
field2 = forms.ModelChoiceField(queryset=..., empty_label=None)
Если вам нужно сделать это на ModelForm
, у меня есть ответ здесь.
Если это ModelForm, просто установите default=None
в своей модели, например:
choose = models.CharField(max_length=3, choices=choose_dict, default=None)
default
используется на уровне базы данных, а не на уровне формы. Это просто означает, что если значение не установлено при создании объекта модели, будет установлено значение None
. Опасный совет
- person Patrick; 10.05.2014