2014-02-21 16 views
1

所以我有下面的代碼:Model.objects.create執行full_clean的等價物?

class MyModel(models.Model): 
    # Text language.                     
    ENGLISH = 'eng'                     
    FRENCH = 'fr'                     

    LANGUAGES_CHOICES = [                    
     (ENGLISH, 'English'),                   
     (FRENCH, 'French'),                   
    ]                         

    language = models.CharField(                  
      max_length=max(len(language) for language in LANGUAGES_CHOICES),       
      choices=LANGUAGES_CHOICES,                
      blank=False,                    
      null=True) 

當我做MyModel(language='invalid').save()MyModel.objects.create(language='invalid'),該模型保存毫無怨言。是否有任何方便的方法相當於Model.objects.create,在保存前執行full_clean

回答

1

如果您使用的是模型表單,full_clean將作爲表單驗證步驟的一部分進行調用。

一般來說,沒有一種方便的方法可以調用full_clean,但您可以自己寫。

0

Model.clean():此方法應用於提供自定義模型驗證,並根據需要修改模型上的屬性。例如,您可以使用它自動爲字段提供值,或者執行需要訪問多個字段的驗證: