【发布时间】:2014-02-06 11:06:27
【问题描述】:
我知道 validate_unique 仅在执行 full_clean 时被调用,而后者仅在调用 ModelForm.save() 时被调用 - 这意味着在执行 model_instance.save() 时不会自动调用 validate_unique
例如。看到这个答案:https://stackoverflow.com/a/14472335/996792
我确实想在调用model_instance.save 时调用validate_unique,所以我重写了我模型的save 函数,如下所示:
def save(self, *args, **kwargs):
self.validate_unique()
super(MyModel, self).save(*args, **kwargs)
但是,这会产生以下怪癖:现在从ModelForm 保存时(例如在管理员中),validate_unique 被调用了两次!大概一次用于ModelForm.save(),一次用于Model.save()。
是否存在这种低效率问题?
我讨厌不必要的垃圾,这种事情困扰着我。
【问题讨论】:
标签: django django-models