2015-12-24 52 views
6

我在通訊形式有一個電子郵件字段,看起來像這樣:Django的 - 變化領域的驗證消息

class NewsletterForm(forms.ModelForm): 

    email = forms.EmailField(widget=forms.EmailInput(attrs={ 
     'autocomplete': 'off', 
     'class': 'form-control', 
     'placeholder': _('[email protected]'), 
     'required': 'required' 
    })) 

    class Meta: 
     model = Newsletter 
     fields = ['email', ] 

我的形式工作,但是當我鍵入「ahasudah @ AHS」沒有點域名稱,我收到此錯誤「輸入有效的電子郵件地址」

這是哪裏?

我剛剛檢查了原始來源,找不到像其他字段一樣的錯誤消息。

https://github.com/django/django/blob/master/django/forms/fields.py#L523

任何想法如何重寫此消息?

+0

,我認爲這不是一個Django的錯誤消息。如果您提供'一些瀏覽器(如chrome)檢查輸入類型 –

+0

它是django,它帶有「error_messages」數組。 – Lara

+0

您能分享您的模型嗎? – DhiaTN

回答

3

事實上,你可以在兩個不同的層面做這兩種不同的方式:

class NewsletterForm(forms.ModelForm): 

    email = forms.EmailField(
     widget=forms.EmailInput(attrs={ 
     'autocomplete': 'off', 
     'class': 'form-control', 
     'placeholder': _('[email protected]'), 
     'required': 'required' 
     }), 
     error_messages={'invalid': 'your custom error message'} 
    ) 

    class Meta: 
     model = Newsletter 
     fields = ['email', ] 
  1. 您可以在表單驗證的水平做到這一點=「2」>
  2. 第二種方式在模型級別:

2.1。你可以做同樣的形式:

email = models.EmailField(error_messages={'invalid':"you custom error message"}) 

2.2。或者你使用Django built-in Validators

from django.core.validators import EmailValidator 

    email = models.EmailField(validators=[EmailValidator(message="your custom message")]) # in you model class