【问题标题】:django-polymorphic Filter by child typedjango-polymorphic 按子类型过滤
【发布时间】:2014-05-05 17:12:27
【问题描述】:

我的模型结构如下:

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

class Group(PolymorphicModel):
    pass

class SpecialGroup(Group):
    pass

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

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

提前致谢, 干杯!

【问题讨论】:

    标签: django polymorphism django-polymorphic


    【解决方案1】:

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

    from django.contrib.contenttypes.models import ContentType
    
    MyObject.objects.filter(group__polymorphic_ctype=ContentType.objects.get_for_model(SpecialGroup))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-24
      • 1970-01-01
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 2019-11-24
      相关资源
      最近更新 更多