4

mixin を作成し、いくつかのモデルでそれを継承しました。問題は、スキーマの移行を作成すると、ミックスインのフィールドがそこにあることです。

class MyMixin(object):
    a_field = models.CharField(max_length=30, blank=True)
    another_field = models.DateTimeField(blank=True, null=True)

    class Meta:
        abstract = True


class MyModel(models.Model, myMixin):
    ...

何か案は?

4

1 に答える 1

5

以下を使用して動作しているようです

class MyMixin(models.Model):
    a_field = models.CharField(max_length=30, blank=True)
    another_field = models.DateTimeField(blank=True, null=True)

    class Meta:
        abstract = True


class MyModel(myMixin, models.Model):
    ...

変更点は次のとおりです。

  • MyMixin はオブジェクトではなくモデルを継承します (django の mixins はモデルではなくオブジェクトを継承すべきであると多くの議論が行われていますが)。
  • MyModel の継承順序 - ミックスインが最初に来る必要があります
于 2013-06-27T22:45:51.557 に答える