亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django:如何處理關系

Django:如何處理關系

侃侃無極 2023-06-20 10:43:00
我有一個 ModelA 實例,想通過 ModelB 查詢與 ModelA 相關的所有 ModelC 實例。ModelA -> 所有具有 FK 的 ModelB 實例 rel_a = ModelA -> rel_c.all()class ModelA(models.Model):    # fields    passclass ModelB(models.Model):    rel_a = models.ForeignKey('ModelA', ...)    rel_c = models.ManyToMany('ModelC')    # more fieldsclass ModelC(models.Model):    # fields    pass我知道我將如何在 SQL 中執行此操作,但我真的不明白我應該如何理清這些關系
查看完整描述

1 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

您可以使用.filter(…)表達式 [Django-doc]進行查詢:

ModelC.objects.filter(modelb__rel_a=instance_of_modela)

使用.distinct()[Django-doc]過濾掉重復項:

ModelC.objects.filter(modelb__rel_a=instance_of_modela).distinct()

如果您在from?to?(so ) 中指定了related_query_name=…[Django-doc]或related_name=…[Django-doc],則名稱將替換為那個,因此它是:ManyToManyFieldModelBModelCrel_cmodelb

ModelC.objects.filter(related_relc__rel_a=instance_of_modela).distinct()

related_relc或在字段中related_query_namerelated_namerel_c


查看完整回答
反對 回復 2023-06-20
  • 1 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號