我有一個 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],則名稱將替換為那個,因此它是:ManyToManyField
ModelB
ModelC
rel_c
modelb
ModelC.objects.filter(related_relc__rel_a=instance_of_modela).distinct()
與related_relc
或在字段中related_query_name
。related_name
rel_c
添加回答
舉報
0/150
提交
取消