Django模板field.is_required解决

时间:2011-04-27 03:17:58

标签: jquery django validation forms required

我有一个django表单,我没有输出任何问题。

我的问题是关于jQuery验证 我想将jQuery验证应用于所需的输入 我正在使用http://docs.jquery.com/Plugins/validation

我没有可以在模板中使用的field.is_required 所以我正在使用help_text并在我的模板中对其进行评估。

只是想知道这是否是最好的解决方法?

任何建议都非常感激。

这是:

1)表格类

class UserDetailsForm(forms.Form):

    city_town = forms.CharField(label='City / Town',max_length=100, required=True, help_text='*')
    state_province = forms.CharField(label='State / Province',max_length=100, required=True, help_text='*')

2)表格输出

{% for field in form %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label_tag }}: {{ field.help_text }} {{ field }}
</div>
{% endfor %}

3)表单jQuery验证

// Form Validation Setup
{% for field in form %}
{% if field.help_text == '*' %}
$("input[name='{{ field.html_name }}']").addClass('required');
{% endif %}
{% endfor %}
$("#updateProfileForm").validate();

有没有比我正在使用的这项工作更好的方法:

if field.help_text == '*'

我可能希望将该字段用于以后的工具提示 但是现在我正在使用星号,所以我可以在循环中使用它来进行jQuery验证 在模板中。

谢谢!

2 个答案:

答案 0 :(得分:2)

当您遍历表单实例时,__iter__方法返回BoundField(处理呈现和其他misc项)。此绑定字段具有一个字段属性,用于存储实际的字段实例(存储所需的属性)。所以你可以做到

{% if field.field.required %}
    $("input[name='{{ field.html_name }}']").addClass('required');
{% endif %}

答案 1 :(得分:1)

只需将此添加到您的模型中即可。这会将类'required'添加到您的表单中。

city_town.widget.attrs['class'] = 'required'