我在我的表单类中定义了一个名为states
的Django ChoiceField。Django ChoiceField - 如何显示当前选定的值?
class StateForm(forms.Form):
def __init__(self, *args, **kwargs):
super(StateForm, self).__init__(*args, **kwargs)
self.fields['states'] = forms.ChoiceField(widget=forms.Select,
choices=OPTIONS_STATE)
self.initial['states'] = 'Any'
我还设置了初始值“任意”,因为我想在下拉说“任何”默认。
在我的views.py
,get_context_data()
函数中,我将它添加到发送到html的上下文中。
context['state_form'] = StateForm()
在我的HTML,我可以使用Django的特殊语言
{{ state_form.states }}
到目前为止好渲染的下拉列表。我在我的页面看到一个下拉菜单,默认值是'Any'。我可以点击它来选择其他值,在这一点上我的JavaScript代码会发送一个基于我的形式的HTTP请求。它会用筛选的数据重新加载页面。我能够完成所有这些。
问题是,一旦页面重新加载,下拉菜单仍然会显示'Any'。我希望下拉菜单显示先前选择的数据。但我不知道如何。
由于您将所选值传递回您的视图,为什么不执行'context ['state_form'] = StateForm(initial = {'states':dropdown_value})''。 –