开发者

Django subquery using QuerySet

Is it possible to perform a subquery on a QuerySet using another QuerySet?

For example:

开发者_高级运维q = Something.objects.filter(x=y).extra(where=query_set2)


Short answer: No. The extra method doesn't expect querysets to be passed in.

If you think about it a bit, it makes sense. Querysets are an abstraction used to represent the results of a fetch operation on the database and extra is a convenient way of attaching custom fields from the database to a queryset. Unless you change the fundamental nature of extra to mean "custom filtering with another queryset" this will not work.


I may understand your question in two ways.

  1. You can specify multiple variables in your filter parameters, for example :

    q = Something.objects.filter(x=y, w=z)
    
  2. You want to make what is called a "join" in SQL. This can be done via the aggregation system of Django, see the official Django Official Documentation.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜