【发布时间】:2014-05-14 14:32:12
【问题描述】:
我有这个:
class A(models.Model):
name = models.CharField()
tags = models.ManyToManyField(Tags, through='Tags')
class Tags(models.Model)
a = models.ForeignKey(A)
tag = models.ForeignKey(Tag)
assign_date = models.DateTimeField()
class Rates(models.Model):
a = models.ForeignKey(A)
rate = models.PositiveSmallIntegerField()
我需要让所有 Rates 都大于 2,然后按给定日期之后分配的标签进行过滤。 日期过滤器很简单,但我不知道如何使用 django orm 进行此查询
我需要这样的东西:
rates = rates.objects.filter(rate_gte=2, a__tags__assign_date__gte=date_object)
另一方面,sql查询非常简单:
select * from rates
inner join tags on tags.a_id = rates.a_id
where tags.assign_date > now() - '2 weeks' and rates.rate > 2
【问题讨论】:
标签: python django django-models django-orm