所以我有这个结构,我有多个抽象的Django模型,我的所有模型都继承了一个或多个这些抽象模型,例如
class BaseProblem(Base, Slugged, Ownable, Tagged)
现在出现了一种情况,我需要创建另一个派生自所有这些类的抽象类,并且我必须编写一个使用其他抽象类中定义的字段之一的保存函数
class Slugged(models.Model):
class Meta:
abstract = True
title = models.CharField()
slug = models.SlugField()
def save(self, *args, **kwargs):
# generate slug
class BaseProblem(Base, Slugged, Ownable, Tagged):
class Meta:
abstract = True
def save(self, *args, **kwargs):
if not self.id:
# do something with slug field
但问题是,当执行XYZ类的保存功能时,slug字段不存在,因为尚未生成slug字段。
我假设抽象类的保存函数按字母顺序执行,这就是执行BaseProblem
的保存功能时slug字段不存在的原因