使用Django 1.8模型EmailField
是這樣的...的Django 1.8 EmailField現在接受無效的電子郵件地址
email = models.EmailField(verbose_name='email address', max_length=254, unique=True, db_index=True)
...允許輸入無效的電子郵件。例如,下面的代碼創建的時候應該出錯的有效用戶...
用戶(電子郵件=「number_six @卡布裏卡」,密碼=「XYZ」)
但是,如果我在測試驗證Django的它正確地抓住了它......
從django.core.validators導入validate_email validate_email( 「number_six @卡布裏卡」)
我收到了正確的Enter a valid email address.
迴應。
那麼最新情況如何? EmailField
和validate_email
不使用相同的正則表達式嗎?爲什麼EmailField
接受無效的電子郵件地址validate_email
沒有?
EmailField確實使用validate_email方法。也許當你試圖保存對象時調用它? –
@IonutHulub上面是在Shell中直接測試的,其中EmailField允許,而validate_email不允許。對我來說,這裏有一些奇怪的事情發生。 – Prometheus
當您將對象保存到數據庫時,可能會調用驗證器。試試'email.save()'看看是否會拋出驗證錯誤。 –