在Django中处理多个抽象模型的顺序

时间:2013-04-26 07:28:47

标签: python django django-models abstract-class

所以我有这个结构,我有多个抽象的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字段不存在的原因

0 个答案:

没有答案