我在表单中遇到了一个小部件的问题。我在django向导中有3个步骤(3个表单),我想要样式化每个字段。
如果我循环表单以单独设置每个字段的样式,它似乎可以工作,但是,它不能处理我在模型中作为小部件的字段(它们显示为样式,但是输入不被识别)。
例如,我在一个表单中有两个单选按钮,如果我在模板中使用type="checkbox“设置字段的样式,它将不起作用。和文本区域字段一样,我可以呈现一个文本区域,但是表单不能识别输入。有没有一种方法来设计小部件的样式?
{% for form in wizard.form.forms %}
{% for field in form %}
<label class="control-label" for="id_{{ field.name }}">Message</label>
<textarea class="form-control" rows="10" cols="10"
id="id_{{ field.name }}" value="{{ field.value }}"
onblur="if(this.value == '') { this.value='{{field.name}}'}"
onfocus="if (this.value == '{{field.name}}') {this.value=''}" > </textarea>
<p class="help-text">{{ field.help_text }} </p>
{% endfor %}
{% endfor %}
这会将小部件字段(widget=forms.Textarea)呈现为文本区域,但由于字段被定义为小部件,因此表单无法识别该值。
发布于 2014-05-21 07:22:22
在forms.py中添加小部件是实现此目的的最佳方法。如下所示:
from django import forms
class CabModelForm( forms.ModelForm ):
descr = forms.CharField( widget=forms.Textarea )
class Meta:
model = Cab
对于您的表单,从以下内容开始:
<form action="/contact/" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
你的表单是worK吗?它至少应该能用最少的代码工作。如果不是,很可能是views.py中的某个地方出错了。
https://stackoverflow.com/questions/23771128
复制相似问题