我正在使用Django Form,所以基本上我有四个表单字段,例如:
First Name:
Last Name:
Address:
Contact Info:
此表单数据进入Django模板并渲染,但未按正确顺序显示这些字段。每次刷新页面时,表单字段顺序都会更改。 例: 在首页上加载喜欢的图片
Last Name:
First Name:
Contact Info:
Address:
在刷新页面顺序时,
Address:
Last Name:
Contact Info:
First Name:
这是我的Django模板表单代码,可在Tempalte中呈现表单:
{% for fields in formset %}
<div class="row">
<div class="col-md-12">
<label class="col-4 control-label">{{fields.label}}
</label>
{{fields}}
</div>
</div>
{% endfor %}
我的Form.py文件包含以下表单:
class my_info(forms.Form):
Action = forms.ChoiceField(
label="First Name",
widget=forms.Select(attrs={'class': 'form-control'}),
choices=Action_choice)
model_id = forms.CharField(
label ='Last Name',
widget=forms.TextInput(attrs={'class': 'form-control','type':'hidden'})
)
Address = forms.CharField(
label ='Address',
widget=forms.TextInput(attrs={'class': 'form-control'})
) ,
Label = forms.CharField(
label ='Contact Info',
widget=forms.TextInput(attrs={'class': 'form-control'})
)
但是我想按正确的顺序显示这些字段。
First Name:
Last Name:
Address:
Contact Info:
答案 0 :(得分:0)
您可以查看django表单文档中特定版本的django: https://docs.djangoproject.com/en/1.11/topics/forms/#rendering-fields-manually
您可以单独访问每个字段,并通过使用
进行手动渲染{{ form.field }}}
在模板中,而不是遍历表单集,而是按所需顺序获取它们:
<form method="get">
{% csrf_token %}
<div class="row">
<div class="col-md-12">
<label class="col-4 control-label"> {{ form.Action.label }}
</label>
{{ form.Action }}
</div>
<div class="col-md-12">
<label class="col-4 control-label"> {{ form.model_id.label }}
</label>
{{ form.model_id }}
</div>
<div class="col-md-12">
<label class="col-4 control-label"> {{ form.Address.label }}
</label>
{{ form.Address }}
</div>
<div class="col-md-12">
<label class="col-4 control-label"> {{ form.Label.label }}
</label>
{{ form.Label }}
</div>
</div>
<button type="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-search"></span> Submit
</button>
</form>
我也建议您在表单字段中使用更多代表名称...
答案 1 :(得分:0)
在forms.py中的'meta'类中,您可能已经在{}中设置了字段。 花括号用于设置的设置。 在[]或()中设置字段选项可以帮助您按所需顺序获得它。
例如:
`class LoginForm(forms.ModelForm):
username = forms.CharField(help_text='')
password = forms.CharField(widget=forms.PasswordInput())
class Meta:
model = UserRegistration
fields = ['username','password']`