2

有没有办法像这样构建 django 模型层次结构?

class LikableObjectMixin(models.Model):
    # mixin for all likable objects: posts, photos, etc
    likers = models.ManyToManyField(Account)

    class Meta:
        abstract = True

    def save():
        super(LikableObjectMixin, self).save()


class Post(LikableObjectMixin, models.Model):
    message = models.TextField(_('Post'))
    author = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='posts', blank=True, null=True)
    created = models.DateTimeField(auto_now_add=True)

南方能用这种传承吗?这是构建模型层次结构的合适方法吗?

Django=1.5.1

4

1 回答 1

1

是的,完全没问题。South 将为从你的 mixin 继承的所有模型创建适当的 m2m 关系。您甚至不必save显式地编写方法。所以:

class LikableObjectMixin(models.Model):
    likers = models.ManyToManyField(Account)

    class Meta:
        abstract = True


class Post(LikableObjectMixin):
    message = models.TextField(_('Post'))
于 2014-08-30T13:03:26.443 回答