4

我创建了一个 mixin 并在某些模型中继承了它。问题是当我创建模式迁移时,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 的继承顺序 - mixin 必须排在第一位
于 2013-06-27T22:45:51.557 回答