我使用Django表单控制内容的长度。该功能有效,但错误信息包含一些我不需要的额外单词和标点符号。
我的问题是如何删除多余的单词和标点符号?
这是我的表格:
def words_validator(comment):
if len(comment) < 4:
raise ValidationError("您输入的评论字数太短,请重新输入至少4个字符")
class CommentForm(forms.Form):
comment = forms.CharField(widget=forms.Textarea(), validators=[words_validator])
这是我的模板:
{% if comment_form.errors %}
<div class="ui error" >
{{comment_form.errors}}
</div>
{% endif %}
错误消息在这里:
·comment
。您输入的评论字数太短,请重新输入至少4个字符
我只需要&#39; 您输入的评论字数太短,请重新输入至少4个字符&#39;,不要标点符号和字段名称&#39;的评论&#39;
有朋友有解决方案吗?
答案 0 :(得分:0)
你需要遍历表单,然后是field.errors,
像,
{% for field in form %}
{% for error in field.errors %}
{{ error }}
{% endfor %}
{% endfor %}
示例:
myapp.forms.py
def words_validator(comment):
if len(comment) < 4:
raise ValidationError("Lenght should be greater than 4")
class Demo(forms.Form):
comment = forms.CharField(widget=forms.Textarea(), validators=[words_validator])
外壳:
In [1]: html = """
...: {% for field in form %}
...: {% for error in field.errors %}
...: {{ error }}
...: {% endfor %}
...: {% endfor %}
...:
...: """
In [2]: from django.template import Context, Template
In [3]: from myapp.forms import *
In [4]: form = Demo({'comment': 'abc'})
In [5]: t = Template(html)
In [6]: c = Context({'form': form})
In [7]: print t.render(c)
Lenght should be greater than 4