我想在模型上執行一些自定義驗證,我感到困惑。讓我具體一點。比方說,我的代碼如下:調用django中的create時隱式調用save()嗎?
class FooManager(models.Manager):
def create_foo(self, name):
return self.create(foo_name = name)
class Foo(models.Model):
foo_name = models.CharField(max_length=30)
objects = FooManager()
def clean(self):
...
def save(self, *args, **kwargs):
self.full_clean()
super(User, self).save(*args, **kwargs)
現在,當我從殼這種模式工作,如果我叫:
F = Foo.objects.create_foo( 「」)
這將引發驗證錯誤之前,我得到一個機會ŧ o在f上調用save()。爲什麼會發生?一旦我調用f.save(),不應該只會提高驗證錯誤嗎?
注意:如果我使用objects.create()而不是自定義的create方法,則會發生同樣的情況。任何幫助將不勝感激,因爲我在django中發現驗證相當令人沮喪。
不,對不起,這是我這個不好的例子的錯。在我的實際代碼中,我確實把自己放在經理身上。我應該提出自己的實際代碼,這有幫助嗎? – innospark