亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使同一個驗證器具有多個字段

使同一個驗證器具有多個字段

九州編程 2021-06-12 18:13:22
客觀的 :我想覆蓋first_name和last_name從AbstractUser model.我到底想要什么:我想創建validator一個告訴我們是否填充first_name或last_name填充。所以我想用這兩個參數調整同一個驗證器。我該如何創作?
查看完整描述

1 回答

?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

您可以覆蓋模型的clean()方法。作為參考,通過 保存模型實例ORM不會調用模型的clean()方法。


所以當你子類化時AbstractUser:


from django.core.exceptions import ValidationError



class User(AbstractUser):


    def clean(self):

        super().clean()


        if not self.first_name and not self.last_name:

            raise ValidationError({

                'first_name': ValidationError('Please set this', code='error1'),

                'last_name': ValidationError('... or this', code='error2')

            })

不要忘記Django按照文檔中的描述配置您的項目。您還需要確保使用此模型的表單始終實現字段first_name和last_name,否則您將獲得ValueError.


因此,每次將 aModelForm與User模型結合使用時clean()都會被調用。如在Django的UserChangeForm,UserCreationForm等等。


查看完整回答
反對 回復 2021-06-16
  • 1 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號