【问题标题】:django polymorphic model, filter on subclass fielddjango 多态模型,过滤子类字段
【发布时间】:2013-04-15 19:50:50
【问题描述】:

我有一些使用 django-polymorphic-model 的模型

例如。

class Article(PolymorphicModel):
  ...
class Blog(Article):
  tags = ...
class Story(Article):
  publish = ...

通常如果我得到所有文章,我只做Article.objects.all(),但是如果我想得到所有标签为空的文章怎么办?如果我这样做 Articles.objects.filter(tags__isnull=True) 它会中断,因为其他模型没有这个字段,我也想包含 Story 条目,我真的必须分成 2 个不同的查询并再次组合吗?

【问题讨论】:

    标签: django model polymorphism


    【解决方案1】:

    好的 在通过问题对documentation 进行了一些挖掘之后,这里是如何做到的

    Articles.objects.filter(Blog___tags__isnull=True)
    

    【讨论】:

    • 如果您有多个具有相同字段的子类怎么办,有没有办法过滤所有带有标签的子类__isnull=True?
    • 我现在没有代码,但我认为如果所有子类都有该字段,它应该可以工作,甚至更好,如果所有子类都有相同的字段,该字段应该位于父级类,所以它肯定有效。
    【解决方案2】:

    希望您之前找到了答案。

    Articles.objects.filter(Q(Blog___tags__isnull=True)|Q(Story__tags__isnull=True))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 2023-02-22
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多