2014-05-14 91 views
1

我有這樣的:Django的多對多的過濾器領域

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() 

我需要讓所有的價格更大然後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 

回答