2

我试图将一些自定义错误消息添加到这样的表单中:

class RegistrationForm(forms.ModelForm):

    class Meta:
        model = User  
        fields = ('email',)

    extra_field = forms.CharField(error_messages={
        'required':'Este campo es requerido'
    })     

将自定义错误消息添加到以 () 形式声明的字段没有问题extra_field,但我无法将自定义错误消息添加到User通过meta类 ( email) 从模型继承的字段。

我真正想要的是自定义此表单的所有错误消息。另外,我想用西班牙语而不是英语显示它们。

到目前为止,我还没有找到任何关于如何自定义从模型 User 继承的表单字段的文档,我真的不想仅仅因为错误消息而编写新表单。

提前致谢!!!

PD:我在 debian 挤压盒中使用 Django 1.4 和 python 2.6.6。

4

3 回答 3

1

好的,谢谢大家的回答,其实你们帮了我很多!!!

我解决了这样的问题:

假设我有这个表格:

class RegistrationForm(forms.ModelForm):

  class Meta:
    model = User  
    fields = ('username', 'email')

而且我想将自定义错误消息添加到用户名字段,但我不想放弃该字段已经附带的所有验证。

我将此方法添加到我的 RegistrationForm 类:

def clean_username(self):
    data = self.cleaned_data

    # My extremely important validation.
    if len(data['username']) == 5:

      self.fields['username'].error_messages["myerror"] = "The important message"
      raise forms.ValidationError(self.fields['username'].error_messages["myerror"])

    return data['username']

这种方法的优点是我不会放弃相关领域已经附带的其他验证检查。

这很重要,因为现在我不必验证用户是否已存在于我的数据库中。

感谢您的回复,祝您有美好的一天!!!

于 2012-04-23T00:57:22.817 回答
0

在你的settings.py中打开内部化

USE_I18N = True
LANGUAGE_CODE = 'es'

型号User与其他型号没有区别。输入您的代码以找出问题所在。在您的元类fields = ('email')中必须是元组或列表,即fields = ('email', )

于 2012-04-21T17:54:07.817 回答
0

您可以通过以与定义额外字段完全相同的方式简单地重新定义它们来覆盖任何继承的字段。

于 2012-04-21T19:08:17.753 回答