以向导形式设计django小部件

时间:2014-05-20 22:36:42

标签: django django-forms

我在表单中遇到小部件问题。我在django向导中有3个步骤(3个表单),我想为每个字段设置样式。

如果我循环表单以分别设置每个字段的样式,它似乎可以工作但是,它不能使用我在模型中作为小部件的字段(它们看起来是样式但输入无法识别)。

例如,我在一种形式中有2个radiobutton,如果我使用type ="复选框"要在模板中设置字段样式,它不起作用。与textarea字段相同,我可以渲染textarea,但表单不识别输入。 有没有办法为小部件设置样式?

{% 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 %}

将窗口小部件字段(窗口小部件= forms.Textarea)渲染为文本区域,但由于de字段被定义为窗口小部件,因此表单无法识别该值。

1 个答案:

答案 0 :(得分:0)

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>

你的表格有问题吗?它应该至少使用这个最小的代码。如果没有,您的views.py中最有可能出现错误。