列表项目模板Django

问题描述:

我正在处理在Django上创建一个模板,以显示包含2个按钮的项目列表。列表项目模板Django

我的窗体类是:

class AppsForm(forms.Form): 
    def __init__(self, *args, **kwargs): 
     policiesList = kwargs.pop('policiesList', None) 
     applicationList = kwargs.pop('applicationList', None) 
     EC2nodesList = kwargs.pop('amazonNodesList', None) 
     super(AppsForm, self).__init__(*args, **kwargs) 
     self.fields['appsPolicyId'] = forms.ChoiceField(label='Application Policy', choices=policiesList) 
     self.fields['appsId'] = forms.ChoiceField(label='Application', choices=applicationList) 
     self.fields['ec2Nodes'] = forms.ChoiceField(label='Amazon EC2 Nodes', choices=EC2nodesList) 

现在,我做的形式:

<form method="post" action="" class="form-inline" role="form"> 
     <div class="form-group"> 
      {% for field in form %} 
      { field.label }}: {{ field}} 
      {% endfor %} 
     </div> 
    {% csrf_token %} 
    <input type="submit" class="btn btn-default btn-success" name="deployButton" value="Deploy"/> 
    <input type="submit" class="btn btn-default btn-danger" name="undeployButton" value="Undeploy"/> 

而结果是:

Application Policy - Choicefield ; Application - Choicefield ; Amazon EC2 Nodes - Choicefield [Button Deploy] [Button Undeploy] 

而我寻找它是一种渲染方式窗体并显示如下列表:

Application Policy - Choicefield ; Application - Choicefield [Button Deploy] [Button Undeploy] 
Amazon EC2 Nodes - Choicefield [Button Deploy] [Button Undeploy] 
<more items if I add them in forms.py...> 

我该如何获得正确的渲染方式?

感谢和问候。

你只需要改变一下代码都是:

{% for field in form %} 
    { field.label }}: {{ field}} 
    <input type="submit" class="btn btn-default btn-success" name="deployButton" value="Deploy"/> 
    <input type="submit" class="btn btn-default btn-danger" name="undeployButton" value="Undeploy"/> 
    <br /> 
{% endfor %} 

因此,这将创建一个新的行每个都有自己的按钮field.label和场变量。但有一点需要注意,如果您尝试将ID分配给按钮,它们必须有所不同,否则会出现错误。另外,对于这样的代码,提交可能有点奇怪,但它取决于应用程序的其余部分。无论哪种方式,这将给你所需的格式。

+0

谢谢,是一个容易的变化。但正如你所说,我正在想另一种方式来做它,并做一个不太奇怪的代码。 – Aker666