使用 ValidationError

以下是一个 ValidationError 的例子:

from django.forms import ValidationError 

v = ValidationError(
    ('Invalid value: %(value)s'),  # 描述错误信息
    code='invalid', # 错误的代号
    params={'value': '42'}, # 要传递到错误信息的参数
)

在 shell 中测试下:

>>> v.code
'invalid'

>>> v.messages
['Invalid value: 42']




我们在上一篇的基础上用上 ValidationError

from django import forms

class UserRegisterForm(forms.Form):
    user_name = forms.CharField()
    password1 = forms.CharField()
    password2 = forms.CharField()

    def clean(self):
        cleaned_data = super(UserRegisterForm, self).clean()
        password1 = cleaned_data.get("password1")
        password2 = cleaned_data.get("password2")

        if password1 != password2:
            raise forms.ValidationError(
                ('两次密码不一致。 Invalid value: %(value)s'),
                code='invalid',
                params={'value': password2},
            )

在 shell 中测试下:

>>> from myApp.forms import UserRegisterForm
>>> f = UserRegisterForm({'name':'abc', 'password1': '12345', 'password2': '1234'})
>>> f.errors
{'user_name': ['This field is required.'], '__all__': ['两次密码不一致。 Invalid value: 1234']}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,485评论 0 5
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,761评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,975评论 6 342
  • 大家早上好,今天咱们阅读的是《被讨厌的勇气》这本书中《引言》到《再怎么找原因也没法改变一个人》这三个章节。 — 1...
    乐L鱼Y儿E阅读 185评论 0 0