5

我有如下模型结构:

class MyObject(PolymorphicModel):
    group = models.ForeignKey(Group)

class Group(PolymorphicModel):
    pass

class SpecialGroup(Group):
    pass

现在,我想选择所有 MyObjects,哪个组的类型为 SpecialGroup。

是否可以在不运行原始 SQL 的情况下使用 QuerySet API 来实现?我想出的唯一可行的解​​决方案是使用 .extra() 运行额外的“选择”SQL 查询。

在此先感谢,干杯!

4

1 回答 1

17

在内部,django_polymorphic 使用 Django 的 ContentType 框架来确定用于每个模型的实际类。

from django.contrib.contenttypes.models import ContentType

MyObject.objects.filter(group__polymorphic_ctype=ContentType.objects.get_for_model(SpecialGroup))
于 2014-03-27T00:15:46.373 回答