我想知道是否有可能使用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可以用這樣的對象工作。真的很高興知道。感謝你們! 該查詢看起來有點奇怪,因爲我只有一個字段只有發票號碼或客戶名稱,這就是爲什麼我必須通過兩者進行排序。 –