无法在Djang中呈现模板上的ChoiceField

2024-09-30 12:20:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在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上:

^{pr2}$

其中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并访问元素?我做错什么了?在

谢谢。在


Tags: selfformfieldsforapplicationpolicyformslabel

热门问题