簡體   English   中英

Django 1.4-在帶有元字段Model = User的表單中向用戶字段添加自定義錯誤消息

[英]Django 1.4 - Add custom error message to user fields in form with meta field Model=User

我試圖將一些自定義錯誤消息添加到這樣的表單中:

class RegistrationForm(forms.ModelForm):

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

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

我將自定義錯誤消息添加到以( extra_field )形式聲明的字段中沒有問題,但是我無法將自定義錯誤消息添加到通過meta類( email )從模型User繼承的字段中。

我真正想要的是自定義此表單的所有錯誤消息。 另外,我想用西班牙語而不是英語顯示它們。

到目前為止,我還沒有找到任何有關如何自定義從User模型繼承的表單字段的文檔,我真的不想僅由於錯誤消息而編寫新表單。

提前致謝!!!

PD:我在debian壓縮框中使用Django 1.4和python 2.6.6。

好的,謝謝大家的回答,實際上您對我有很大幫助!!!

我解決了這樣的問題:

假設我有這種形式:

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']

這種方法的優點在於,我不會松開該字段已經附帶的其他驗證檢查。

這很重要,因為現在我不必驗證用戶是否已存在於數據庫中。

謝謝您的回復,祝您有美好的一天!!!

settings.py中啟用內部化

USE_I18N = True
LANGUAGE_CODE = 'es'

模型User與其他User沒有什么不同。 將您的代碼找出問題所在。 在您的元類中, fields = ('email')必須是元組或列表,即, fields = ('email', )

您可以通過完全按照定義額外字段的方式重新定義它們來覆蓋任何繼承的字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM