3 回答

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

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
你可以試試;
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')
如果你想查看實(shí)際執(zhí)行了哪個(gè)查詢:
results.query
還有另一種方法可以使用 django 運(yùn)行原始 SQL。所以,在你的情況下,它會(huì)是這樣的:
raw_results = Picture.objects.raw('''select * from Pictures?
? ? ? ? ? ? ? ? ? ? ? ?join GoldItemBranches?
? ? ? ? ? ? ? ? ? ? ? ?on Pictures.GoldItemID = GoldItemBranches.GoldItemID?
? ? ? ? ? ? ? ? ? ? ? ?and Pictures.GoldItemBranchID = GoldItemBranches.GoldItemBranchID''')
并迭代這個(gè)原始查詢結(jié)果
for raw_result in raw_results:
? ? print(raw_result)
添加回答
舉報(bào)