Формы Django выбирают значение опции вручную по одному и тому же URL
У меня проблемы с тем, как получить выбранный вариант формы, переданный обратно на тот же url, что и значение контекста get:
forms.py
class ModeForm(forms.Form):
MODES = (
('','Select a generation mode'),
('docker','Docker'),
('docker-compose','Docker Compose'),
('kubernetes', 'Kubernetes'),
)
selectedMode = forms.CharField(label="",
widget=forms.Select(choices=MODES,
attrs={
'class': 'form-control',
'placeholder': 'Generation mode',
'onchange': 'form.submit();',
}),
)
views.py
# Home page
def viewHome(request):
if request.method == 'POST':
currentMode = request.POST.get('selectedMode')
form = ModeForm(initial={'name':currentMode})
print(f"Post Mode is: {currentMode}")
context = {
'data': None,
'form': form,
}
return render(request, 'main/home.html', context)
Я могу получить выбранное значение при POST к представлению. Однако я не уверен, как сделать так, чтобы выбранное значение оставалось после того, как выбор сделан и форма отображается снова.
Как обстоят дела сейчас: Поле select имеет начальное значение при первоначальной загрузке главной страницы. Как только значение выбрано, форма публикуется на главной странице. В request.POST я могу получить выбранное значение. Однако элемент управления select сбрасывается, и значение теряется вне POST.
Я пытаюсь сделать следующее: получить выбор при отправке формы. Чтобы это значение сохранялось после установки значения.
Есть ли рекомендуемый способ справиться с этой ситуацией?