0
是否可以將相關字段的行傳遞到django數據庫函數中,如果有的話,我該如何實現?當我嘗試時,我最終得到一個整數(id列)而不是行。將相關行傳遞給Django數據庫函數
型號:
class ModelA(models.Model):
pass
class ModelB(models.Model):
pass
class ModelC(models.Model):
model_a_rel = models.ManyToManyField(
ModelA,
related_name='m2mrelatedobj'
)
fkobj = models.ForeignKey(
ModelB
)
期望中的查詢集:
ModelA.objects.annotate(
my_annotation=DatabaseFn('m2mrelatedobj__model_a_rel')
).filter(my_annotation=True)
我的目標是到fkobj
通過行到DatabaseFn
使得連接是通過查詢集進行一次,而不是每個註釋內。
這是甚至可能在Django?現在,我從我的postgres函數中得到一個錯誤,說它收到一個整數而不是一行,這表示django沒有執行額外的連接。任何有識之士將不勝感激,謝謝。
環境:Django v1.10.3, python 2.7, postgresql 9.5
感謝您的回覆,但這是我在我的示例中顯示的語法,它不工作。問題是我不想枚舉每一列(如你的第二個例子),我想要m2m相關對象的外鍵相關對象。您的解決方案將產生m2m對象的字段或我看到的fk對象字段 – chukkwagon
。我會對一個不需要列舉所有列的答案感興趣。在這裏等待;)。對於第二條評論,您可以繼續使用雙下劃線來獲得與m2m對象相關的fk:ModelA.objects.all()。values('m2mrelatedobj__ModelC1_FK_name__FK_filed_name')。乾杯! – Tico