【发布时间】:2014-09-04 21:48:19
【问题描述】:
我有 3 个模型:Offer、Request 和 Assignment。分配在请求和报价之间建立了联系。现在我想这样做:
select *
from offer as a
where places > (
select count(*)
from assignment
where offer_id = a.id and
to_date > "2014-07-07");
我不确定如何使用 django QuerySet 来实现这一点...有什么提示吗?
编辑:上面的查询只是一个示例,查询一般应该是什么样子。 django 模型如下所示:
class Offer(models.Model):
...
places = models.IntegerField()
...
class Request(models.Model):
...
class Assignment(models.Model):
from_date = models.DateField()
to_data = models.DateField()
request = models.ForeignKey("Request",related_name="assignments")
offer = models.ForeignKey("Offer",related_name="assignments")
人们现在可以创建具有给定数量的位置或请求的要约。然后,管理员将在给定时间内将请求与报价联系起来。这被保存为作业。上面的查询应该给我一个报价列表,其中还有位置。因此,我想计算给定报价的有效分配数量,以将其与其位置数量进行比较。此列表应用于为给定的创建新作业的请求查找可能的报价。
我希望这能更好地描述问题。
【问题讨论】:
-
offer request和assignment与这三个的model字段有什么关系?
-
我添加了详细的解释。
标签: sql django subquery django-queryset