Джанго Формирует Поле Выбора


У меня есть два вопроса, касающиеся поля выбора Джанго:

Это моя форма:

class ContactForm(forms.Form):
   GENDER = (
       (1, _("Mr.")),
       (2, _("Ms.")), 
   )
   prefix = forms.ChoiceField(choices=GENDER)
   ...

Это работает нормально, однако мне было интересно, почему поле выбора не принимает значение по умолчанию..

На странице он выводит Mr как выбранное значение, однако если форма отправлена (Примечание: required=True-значение по умолчанию для этого поля), он не выдает ошибку, и значение в моей форме post data - "Ms".

Другой вопрос: {{ prefix.get_prefix_display }} кажется, не работает.. Есть ли разница между моделями и формами с использованием этой функции?

1 5

1 ответ:

Я думаю, что вы путаете поля форм и поля моделей. В поле формы можно задать выбор по умолчанию, используя аргумент 'initial':

Https://docs.djangoproject.com/en/dev/ref/forms/fields/#initial

Но он представлен в вашей модели полем ModelField, для которого значение по умолчанию может быть установлено с помощью аргумента default:

Https://docs.djangoproject.com/en/dev/ref/models/fields/#default