【发布时间】:2018-02-14 07:16:23
【问题描述】:
是否可以将相关字段的行传递到 django 数据库函数中,如果可以,我该如何实现?当我尝试时,我最终得到一个整数(id 列)而不是行。
型号:
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
【问题讨论】:
标签: python django postgresql django-queryset