【发布时间】:2016-07-08 08:16:41
【问题描述】:
我有以下型号:
class Agreement(models.Model):
...
organization = models.ForeignKey("Organization")
class Signed_Agreement(models.Model):
agreement = models.ForeignKey("Agreement")
member = models.ForeignKey("Member")
我要做的是获取特定组织 (self.organization) 的所有协议的列表,并在每个协议中添加有关它是否已由特定成员 (self.member) 签署的信息.
如果协议已签署,则存在特定协议和成员的 Signed_Agreement 实例。
如何为此编写查询?
这是我目前的努力:
from django.db.models import When, F, Q, Value
def get_queryset(self):
agreements = _agreement_model.Agreement.objects.filter(
organization=self.organization
).annotate(
signed=When(Q(signed_agreement__member=self.member), then=Value(True))
).order_by(
'name'
)
return agreements
这不会产生正确的结果。
任何帮助将不胜感激。提前致谢。
【问题讨论】:
标签: python django django-orm