我想知道是否有可能使用queryset对象属性过滤查询集结果。如何使用查询集结果做一个过滤器Django
例子:
clients = Client.objects.filter(name__contains=search)
这应返回几个对象
result = Invoice.objects.filter(client_id=clients.id)
现在我希望所有的内部发票对应于发现clients.id的数据。
什么是最优化的方法呢?由于Django是一个强大的框架,我想知道它是否有一个好的和快速的方法来做到这一点,而不必将主要结果添加到列表中并执行for循环。
第二个例子产生2个查询无缘无故,你可以这么做:'Invoices.objects.filter(client__in = Client.objects.filter(** your_crazy_search))'。 Django会根据需要生成一个子查询。 – spectras
谢谢你,你是对的。但在某些情况下,2个查询优于1个带有子查询的查询。 – Akisame
这完全是我想要的。我不知道Django可以用这样的对象工作。真的很高兴知道。感谢你们! 该查询看起来有点奇怪,因为我只有一个字段只有发票号码或客户名称,这就是为什么我必须通过两者进行排序。 –