在多态方法中获取实际的Model类

时间:2014-07-29 12:22:49

标签: django

我有一个像django-polymorphic这样的代码。 A基本模型用作through=模型中的外键。

class A(models.Model):
    class Meta:
        verbose_name = _('A')
        verbose_name_plural = _('As')

    def __unicode__(self):
        return "%s (%s)" % (
            unicode(self.name), self.__class__._meta.verbose_name)

    name = models.TextField()

class B(A):
    class Meta:
        verbose_name = _('B')
        verbose_name_plural = _('Bs')


class C(A):
    class Meta:
        verbose_name = _('C')
        verbose_name_plural = _('Cs')

但是,在QuerySet的{​​{1}}中,A总是self.__class__,即使是子类也是如此。

如何在这样的继承方法中访问子类?

1 个答案:

答案 0 :(得分:0)

根据文档(http://django-polymorphic.readthedocs.org/en/latest/admin.html#example)正确设置时,它适用于管理员。我没有在其他观点中测试过。