Установить значение по умолчанию для выпадающего в django формах - PullRequest
9 голосов
/ 03 мая 2011

Я не могу установить значение по умолчанию для раскрывающегося списка при загрузке форм.

Вот код

state = forms.TypedChoiceField(choices = formfields.State)

State = (
         ('QC_APPROVED','QC_APPROVED'),
         ('REVERT','REVERT'),
         ('FIXED','FIXED'),
        )

Если я хочу сделать состояние по умолчанию как FIXED. Я пишу этот код

state = forms.TypedChoiceField(choices = formfields.State, default = 'FIXED')

Если я выполняю приведенный выше код, я получаю следующую ошибку.

Exception Value: __init__() got an unexpected keyword argument 'default'

Может ли кто-нибудь помочь в этом?

Ответы [ 4 ]

18 голосов
/ 03 мая 2011
state = forms.TypedChoiceField(choices=formfields.State, initial='FIXED')

Как показано в документации: http://docs.djangoproject.com/en/dev/ref/forms/fields/#initial

2 голосов
/ 03 мая 2011

поля принимают initial значения

1 голос
/ 20 августа 2018

Я наткнулся на эту тему, когда искал, как установить начальное «выбранное» состояние формы Django для поля внешнего ключа, поэтому я просто хотел добавить, что вы делаете это следующим образом:

models.py:

class Thread(NamedModel):
    topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
    title = models.CharField(max_length=70, blank=False)

forms.py:

class ThreadForm(forms.ModelForm):
    class Meta:
        model = Thread
        fields = ['topic', 'title']

views.py:

def createThread(request, topic_title):
    topic = Topic.getTopic(topic_title)
    threadForm = ThreadForm(initial={'topic': topic.id})
...

Ключом является настройка initial={'topic': topic.id}, которая, на мой взгляд, недостаточно хорошо документирована.

0 голосов
/ 03 мая 2011

Попробуйте число:
state = forms.TypedChoiceField (choices = formfields.State, default = 2)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...