第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何對(duì) django 查詢集中的多個(gè)字段執(zhí)行聯(lián)接?

如何對(duì) django 查詢集中的多個(gè)字段執(zhí)行聯(lián)接?

婷婷同學(xué)_ 2023-10-11 20:10:26
這是我的模型:class Picture(models.Model):    picture_id = models.IntegerField(db_column='PictureID', primary_key=True)    gold_item =models.ForeignKey(GoldItem,db_column="GoldItemID",related_name="pictures",on_delete=models.CASCADE)    gold_item_branch = models.ForeignKey(GoldItemBranch, db_column="GoldItemBranchID", related_name="pictures", on_delete=models.CASCADE)    code = models.CharField(db_column='Code', max_length=5, blank=True, null=True)class GoldItemBranch(models.Model):    gold_item_branch_id = models.IntegerField(db_column='GoldItemBranchID', primary_key=True)    gold_item_id = models.IntegerField(db_column='GoldItemID')    gold_item_branch_name = models.CharField(db_column='GoldItemBranchName', max_length=30, blank=True, null=True)我需要對(duì)上述模型中的多個(gè)列執(zhí)行連接操作。列是 gold_item_id 和 gold_item_branch_id我寫了 SQL 查詢:select * from Pictures join GoldItemBranches on Pictures.GoldItemID = GoldItemBranches.GoldItemID and Pictures.GoldItemBranchID = GoldItemBranches.GoldItemBranchID我如何在 Django queryset 中執(zhí)行相同的查詢?
查看完整描述

3 回答

?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊

要執(zhí)行多列聯(lián)接,請(qǐng)使用FilteredRelation。



查看完整回答
反對(duì) 回復(fù) 2023-10-11
?
一只甜甜圈

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)


查看完整回答
反對(duì) 回復(fù) 2023-10-11
?
喵喵時(shí)光機(jī)

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)

查看完整回答
反對(duì) 回復(fù) 2023-10-11
  • 3 回答
  • 0 關(guān)注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)