Как убрать невыбранный элемент в селекте и радиовходе в Django - PullRequest
5 голосов
/ 14 октября 2010

Если поле модели является выбором или внешним ключом, виджет на странице является выбранным входом или радио, если вы укажете это.Джанго помещает «---------» в первый элемент как невыбранное значение.Как я могу переопределить это или даже удалить это?Я помню, как читал, как это сделать, но больше не могу его найти.

Ответы [ 3 ]

7 голосов
/ 17 января 2011

Из форм Django doc :

По умолчанию виджет <select>, используемый ModelChoiceField, будет иметь пустой выбор в верхней части списка. Вы можете изменить текст этой метки (по умолчанию это "---------") с атрибутом empty_label, или вы можете полностью отключить пустую метку, установив empty_label=None:

field2 = forms.ModelChoiceField(queryset=..., empty_label=None)

Если вам нужно сделать это на ModelForm, у меня был ответ здесь .

6 голосов
/ 14 октября 2010

См .: http://docs.djangoproject.com/en/dev/topics/forms/modelforms/

Если для поля модели заданы варианты выбора, то виджет поля формы будет установлен на «Выбор», при этом варианты выбора будут исходить из вариантов поля модели.Варианты, как правило, включают пустой выбор, который выбран по умолчанию.Если поле является обязательным, это заставляет пользователя сделать выбор.Пустой выбор не будет включен, если поле модели имеет пустое значение = False и явное значение по умолчанию (вместо этого будет изначально выбрано значение по умолчанию).

3 голосов
/ 17 января 2011

Если это ModelForm, просто установите default=None в вашей модели, например:

choose = models.CharField(max_length=3, choices=choose_dict, default=None)
...