1

我创建了一个这样的模型

class Users(models.Model):
    alpha_field = RegexValidator(regex=r'^[a-zA-Z]+$', message='Name can only contain letters')
    username = models.SlugField(max_length=50, unique=True)
    first_name = models.CharField(max_length=50, verbose_name='first Name', validators=[alpha_field])
    last_name = models.CharField(max_length=50, validators=[alpha_field])
    password = models.SlugField(max_length=50)

我用它做了一个表格,我想提出我自己的错误信息。

类用户表单(forms.ModelForm):

class Meta:
    model = Users
    widgets = {'password':forms.PasswordInput()}

def __init__(self, *args, **kwargs):
    super( UsersForm, self ).__init__(*args, **kwargs)
    self.fields[ 'username' ].widget.attrs[ 'placeholder' ]="Username"
    self.fields[ 'first_name' ].widget.attrs[ 'placeholder' ]="First Name"  
    self.fields[ 'last_name' ].widget.attrs[ 'placeholder' ]="Last Name"
    self.fields[ 'password' ].widget.attrs[ 'placeholder' ]="Password"
    self.fields['first_name'].label='first Name'
    self.fields['first_name'].error_messages = {'required': 'First Name is Required'}

如您所见,如果未填写 first_name 字段,我已经创建了错误消息。但是,我知道 CharField 会引发更多错误消息(例如,如果提交的 first_name 大于 max_length)。我想为每个可能引发的错误消息提供自定义错误消息。有没有一个地方我可以看到 CharField 表单可以引发的所有可能错误消息的列表?

此外,我在 first_name 中的详细名称不起作用,如果我可以使详细名称起作用,那么我不需要为错误消息创建自定义消息。请注意,我确实已经创建了一个关于 verbose_name 不起作用的线程,但我仍然没有弄清楚它为什么不起作用的确切原因。如果 verbose_name 可以开始工作,那就太好了。这是该线程的链接:

django verbose_name 不起作用

4

1 回答 1

2

以下是每个字段的所有默认错误消息键的文档:https://docs.djangoproject.com/en/dev/ref/forms/fields/#built-in-field-classes也许下次尝试谷歌搜索?

于 2013-09-26T22:45:14.647 回答