Как динамически обновлять «начальное» значение в поле выбора формы

У меня есть форма со следующим полем:

image_choices = [] 
images = forms.ChoiceField(label=_("Images"), choices=image_choices, initial="")

Мне нужно иметь возможность обновить значение «начального» атрибута после того, как я узнаю, каким должно быть это значение. В настоящее время у меня есть это задание, выполненное в __init__:

def __init__(self, request, image_choices=image_choices,
             flavor_choices=flavor_choices, args, *kwargs): 
    super(UpdateWorkload, self).__init__(request, args, *kwargs) 
    selected_image = selected_workload['image'] 
    self.fields['images'].initial = selected_image

Я не получаю никаких ошибок, и при печати значение есть, но в фактической форме на экране я все равно получаю свой список по умолчанию, и никакие конкретные элементы не выбраны, как self.fields['images'].initial = str(selected_image)

Как я могу это исправить?


person Eugene Goldberg    schedule 23.01.2015    source источник
comment
Вы пробовали это: stackoverflow.com/a/11400559?   -  person mariodev    schedule 24.01.2015
comment
FWIW, динамические начальные значения появились начиная с Django 2.0: docs.djangoproject.com/en/2.0/ref/forms/api/   -  person Palisand    schedule 05.11.2020


Ответы (1)


Ведь при таком подходе:

self.fields['images'].initial = selected_image
self.fields['flavors'].initial = selected_flavor

работает. Единственное, что я сделал по-другому, это изменил свой бэкэнд с django restframework на deliciouspie.

person Eugene Goldberg    schedule 25.01.2015