我试图在Django的模板中显示一个ChoiceField,但我无法使其工作。在
我在这里找到了一些解决方案,但似乎对我无效(Possible solution),但我得到了一个错误:too many values to unpack
在{{ form.as_p }}
行上。在
所以在网上搜索时,我找到了这个Solution,但我无法添加到我的代码中并使其正常工作。我得到的是一个TextField,而不是一个“Dropdown”(在Django Choicefield中)。而且,这个解决方案列出了for循环中的所有项,我得到了4个textfield,而不是2个choicefield和元素。在
我的forms.py
看起来像:
class SimpleDeploy(forms.Form):
def __init__(self, networkList, policiesList, *args, **kwargs):
super(SimpleDeploy, self).__init__(*args, **kwargs)
if networkList and policiesList:
self.fields['networkPartitions'] = forms.ChoiceField(choices=networkList)
self.fields['applicationPolicies'] = forms.ChoiceField(choices=policiesList)
else:
self.fields['networkPartitions'] = forms.ChoiceField(choices='No network partitions found')
self.fields['applicationPolicies'] = forms.ChoiceField(choices='No application policies found')
在我的views.py
上:
其中netList
和{
[(u'application-policy-2', u'application-policy-2'), (u'application-policy-1', u'application-policy-1')]
在我的模板上,我试图展示ChoiceField,比如:
<table class="table">
{% for item in form.networkPartitions.field.choices %}
<label for="">Network Partitions</label> <input type="choicefield" name="networkPartitions" value="{{item.1}}"/>
{% endfor %}
{% for item in form.applicationPolicies.field.choices %}
<label for="">Application Policies</label> <input type="choicefield" name="applicationPolicies" value="{{item.1}}"/>
{% endfor %}
</table>
如何在不使用for循环的情况下获得choicefield并访问元素?我做错什么了?在
谢谢。在
感谢@raphv,解决方案被放在模板上}。如此简单。。。。在
{{form.networkPartitions}}
和{相关问题 更多 >
编程相关推荐