更改字段名称django在显示表单错误消息时使用

时间:2013-09-25 02:05:21

标签: django django-models django-forms django-views django-errors

好的,我有一个表单,然后在模板中,我有这个代码:

{% 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*

如何让它显示“First Name”而不是“first_name”?

1 个答案:

答案 0 :(得分:3)

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

例如:

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

关于覆盖默认表单错误消息: Django override default form error messages

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