我有如下模型结构:
class MyObject(PolymorphicModel):
group = models.ForeignKey(Group)
class Group(PolymorphicModel):
pass
class SpecialGroup(Group):
pass
现在,我想选择所有 MyObjects,哪个组是 SpecialGroup 类型的。
是否可以使用 QuerySet API 实现它,而无需运行原始 SQL?
我想出的唯一可行的解决方案是使用 .extra() 运行额外的“选择”SQL 查询。
提前致谢,
干杯!
最佳答案
在内部,django_polymorphic 使用 Django 的 ContentType 框架来确定用于每个模型的实际类。
from django.contrib.contenttypes.models import ContentType
MyObject.objects.filter(group__polymorphic_ctype=ContentType.objects.get_for_model(SpecialGroup))
关于django-polymorphic 按子类型过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22675596/