You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找Django模型字段error_messages的可用配置键?

Django表单error_messages可用配置键查找方法

为Django表单字段配置自定义错误提示的常规写法参考如下:

class UserCreationForm(forms.ModelForm):
    password1 = forms.CharField(
        label='password', 
        widget=forms.PasswordInput(attrs={'class': 'form-control form-control-lg'}),
        error_messages={
            'required': "required",
        }
    )

如果需要查找error_messages支持的除required之外的其他配置键,可通过以下几种方式获取,结果完全匹配你当前使用的Django版本,不会出现兼容问题:

  • 直接查询字段类的内置默认错误配置
    所有Django表单字段的内置错误键,都定义在字段类的default_error_messages类属性中,最准确的查询方式是通过项目的Django shell直接打印:
    1. 在项目根目录执行命令进入shell环境:python manage.py shell
    2. 导入你当前使用的字段类,打印默认错误字典即可拿到全部可用内置键,以示例中用到的CharField为例:
    from django import forms
    print(forms.CharField.default_error_messages)
    
    执行后会直接返回该字段所有内置错误的键和默认提示,比如CharField的返回结果包含required、min_length、max_length、invalid这几个常用键,你可以直接在error_messages里覆写对应提示内容。
    如果你用的是其他类型字段,替换成对应类名查询即可,比如forms.EmailField、forms.IntegerField:不同字段的专属错误键有区别,比如IntegerField额外支持max_value、min_value键,对应数值超出上下限的错误场景,EmailField的invalid键对应邮箱格式错误场景。
  • 匹配自定义校验器的code值
    如果你给字段额外添加了自定义校验逻辑(比如正则校验、密码强度校验),校验器定义时传入的code参数值,就是可以在error_messages中配置的键。比如你给密码字段加了一个code为password_too_weak的校验器,就可以直接在error_messages里添加'password_too_weak': '密码强度不足,需同时包含大小写字母和数字'的配置。
  • Widget组件的错误键查询
    示例中用到的PasswordInput属于表单Widget组件,如果Widget本身带内置校验逻辑(比如HTML5表单属性触发的前端校验),它的错误键同样定义在对应Widget类的default_error_messages属性中,查询方式和字段类一致,在shell中打印对应Widget类的该属性即可拿到可用键。

内容的提问来源于stack exchange,提问作者CC7052

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 08:48:32