Установите начальное значение в ModelChoiceField при настройке - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь выяснить, как установить начальное значение ModelChoiceField при его создании (не при создании формы).Ниже приведен очень упрощенный пример того, что у меня есть сейчас, и я хотел бы установить значения по умолчанию для State и Country , когда они рендерится.

Я думал, что этоможет быть сделано в классе SetBillingInfo в Forms.py, но не может заставить его работать.Скажем, я хочу по умолчанию Калифорния для штата и США для страны.Есть ли способ установить это?

FORMS.PY

class SetBillingInfo(forms.Form):

    state = forms.ModelChoiceField(
        queryset=States.objects.all().order_by('group_order','name'),
        to_field_name='name',
        label = '',
        required=False
    )

    country = forms.ModelChoiceField(
        queryset=Country.objects.all().order_by('group_order','name'),
        to_field_name='name',
        label = '',
        required=True
    )

VIEWS.PY

billinginfo = SetBillingInfo(initial=request.GET)
return render(request, 'index.html',{'billinginfo': billinginfo})

INDEX.HTML (это не совсем правильно, но вы поняли идею)

            {% for field in billinginfo %}
                <select class="FormRow">
                        {{ field }}
                </select>

            {% endfor %}

1 Ответ

0 голосов
/ 26 сентября 2018

в forms.py

default_state=States.objects.get(name='California')

state = forms.ModelChoiceField(
        queryset=States.objects.all().order_by('group_order','name'),
        to_field_name='name',
        label = '',
        initial=default_state,
        required=False
    )
...