3 回答

TA貢獻1836條經驗 獲得超5個贊
您應該查看 django 的select_lated查找。
例子:
Picture.objects.select_related('gold_item__gold_item_id').filter(gold_item_branch=gold_item_id)

TA貢獻1846條經驗 獲得超7個贊
你可以試試;
ids_list = GoldItemBranch.objects.all().values_list('id', flat=True)
results = Picture.objects.filter(gold_item__id__in = ids_list).select_related('gold_item_branch')
如果你想查看實際執行了哪個查詢:
results.query
還有另一種方法可以使用 django 運行原始 SQL。所以,在你的情況下,它會是這樣的:
raw_results = Picture.objects.raw('''select * from Pictures?
? ? ? ? ? ? ? ? ? ? ? ?join GoldItemBranches?
? ? ? ? ? ? ? ? ? ? ? ?on Pictures.GoldItemID = GoldItemBranches.GoldItemID?
? ? ? ? ? ? ? ? ? ? ? ?and Pictures.GoldItemBranchID = GoldItemBranches.GoldItemBranchID''')
并迭代這個原始查詢結果
for raw_result in raw_results:
? ? print(raw_result)
添加回答
舉報