我有两个看起来像这样的模型:
Course(models.Model):
pass
WeeklyPrice(models.Model):
num_weeks = models.IntegerField()
price = models.DecimalField()
course = models.ForeignKey(Course)
is_erased = models.BooleanField()
问题是我有一个搜索表单,需要能够按最少的周数过滤。
在创建课程时,还会创建一堆WeeklyPrices
,然后可以将其删除(逻辑上将is_erased设置为True),因此一个很好的例子就是课程有13个WeeklyPrice实例,从周开始4,因为第1,2和3周已被删除。
那么如何检索Courses
的查询集,其WeeklyPrice
实例的num_weeks
小于或等于从搜索表单中检索到的duration
变量?< / p>
答案 0 :(得分:1)
好的,所以我最终发现它比听起来简单得多......
所需的过滤器是:
courses.filter(weekly_prices__is_erased=False, weekly_prices__num_weeks=duration)