3

したがって、複数の抽象 Django モデルがあり、すべてのモデルがこれらの抽象モデルの 1 つ以上を継承するこの構造があります。

class BaseProblem(Base, Slugged, Ownable, Tagged)

ここで、これらすべてのクラスから派生する別の抽象クラスを作成する必要があるという状況が発生し、他の抽象クラスで定義されているフィールドの 1 つを使用する保存関数を作成する必要があります。

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

4

0 に答える 0