3

好的,所以我有一个表格,然后在模板中,我有以下代码:

{% if form.errors %}
    { form.errors %}
{% endif %}

现在,假设我的表单中有一个用户名字段是必需的,但我故意不填写它。它会说

username
    -This field is required

如何更改它在告诉错误消息的字段时显示的单词“用户名”?我猜它是从我创建的模型中取的名字,因为在模型中(然后我制作了一个表格)我已经写了

username = models.CharField(max_length=10)
first_name = models.CharField(max_length=20)

如您所见,如果 first_name 字段有错误,django 会显示

first_name
    - *error message*

我如何让它显示“名字”而不是“名字”?

4

1 回答 1

4

如果您想将一些自定义消息添加到您的错误中,您可能需要修改表单域的 clean 方法。

例如:

class Form(forms.ModelForm):
    class Meta:
        model = User #Assuming User is the name of your model
        fields = ['username','first_name']

    def clean_first_name(self):
        if condition: # A condition that must raise an error
            raise forms.ValidationError(u'Your Custom Validation Error goes here.')
        return self.cleaned_data['first_name']

但是,如果您只想更改默认错误消息中显示的名称,您可以在字段中输入详细名称,就像:

username = models.CharField(max_length=10, verbose_name="Username")
first_name = models.CharField(max_length=20, verbose_name="First Name")

或隐含的:

username = models.CharField("Username", max_length=10)
first_name = models.CharField("First Name",max_length=20)

要了解有关 django 表单和字段验证的更多信息:https ://docs.djangoproject.com/en/1.5/ref/forms/validation/#form-and-field-validation

关于 Override default Form 错误消息: Django override default form 错误消息

http://davedash.com/2008/11/28/custom-error-messages-for-django-forms/

于 2013-09-25T02:35:45.170 回答