第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

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

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

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

1 回答

?
ibeautiful

TA貢獻1993條經(jīng)驗 獲得超6個贊

您可以覆蓋模型的clean()方法。作為參考,通過 保存模型實例ORM不會調(diào)用模型的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按照文檔中的描述配置您的項目。您還需要確保使用此模型的表單始終實現(xiàn)字段first_name和last_name,否則您將獲得ValueError.


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


查看完整回答
反對 回復 2021-06-16
  • 1 回答
  • 0 關(guān)注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號