2013-04-15 57 views
1

其中a是django表單中的標準錯誤消息?標準django表單錯誤消息

我如何在自定義驗證中使用它們?

我的意思是像 '這個字段是必須的'

由於錯誤

編輯:

目前我這樣做:

def clean(self): 
    cleaned_data = super(QuoteForm, self).clean() 

    country = cleaned_data['country'] 

    for key in COUNTRY_FIELDS[country]: 
     if cleaned_data[key] == '': 
      self._errors[key] = self.error_class(_('This field is required')) 

    return cleaned_data 

固定:我補充 :

 self._errors[key] = self.error_class([forms.Field.default_error_messages['required']]) 

回答

4

django.forms.fields.Field及其子類具有default_error_messages類屬性。

這是一個帶有requiredinvalid等鍵的字典,錯誤消息爲值。

 

  • django.forms.fields.Field.default_error_messagesrequired

  • IntegerFieldFloatFieldDateFieldTimeField各有其自己的invalid

  • DecimalField具有max_digitsmax_decimal_placesmax_whole_digits

Browse the source。搜索頁面default_error_messages

 

如果你繼承一個Field,你可以,例如,

raise ValidationError(self.error_messages['invalid']) 

在現場,error_messages包含字段的類和它的祖先,並獲得通過的任何其他error_messagesdefault_error_messages在場初始化期間。

 

如果你想重用一個場外的required消息,你可以

from django.forms import fields 

raise ValidationError(fields.Field.default_error_messages['required']) 

 

你想要什麼信息重用?

+0

我該如何使用self.error_class()? – maazza

+0

爲什麼不發佈一些代碼來說明你想要做什麼?通常你不應該擔心'error_class'。 –

+0

好吧忘了它必須作爲一個列表傳遞 – maazza