【发布时间】:2019-12-04 22:26:43
【问题描述】:
我有这些模型:
class Committee(models.Model):
title = models.CharField("Title",max_length=50,null=False)
members = models.ManyToManyField(User)
class Meeting(models.Model):
title = models.CharField("Title",max_length=50,null=False)
date = models.DateTimeField("Date",null=False)
committee = models.ForeignKey(Committee, on_delete=models.CASCADE)
我希望我的视图返回登录用户所在的所有委员会,并且只返回已经发生的会议。我正在尝试这段代码:
class MeetingsView(generic.ListView):
template_name = 'meetings/index.html'
context_object_name = 'committees_list'
login_required = True
def get_queryset(self):
return Committee.objects.filter(members__id=self.request.user.id,meeting__date__lte=timezone.now())
这将返回一个查询集,其中不包括今天之前没有开会的委员会。我想要的是获得所有委员会,以及按日期过滤的 meeting_set。还有其他方法吗?
【问题讨论】:
-
听起来你要求的是两种不同的东西;用户所属的委员会,以及他们过去的会议。是这样吗?
-
请通过
meeting_set to be filtered by the date阐明您想要什么。您希望在什么日期之前过滤所有会议?date不是委员会成员。 -
date是会议的一部分,与委员会有关。我想要委员会的meeting_set中按日期过滤的委员会的会议。实际上它返回所有相关的会议。
标签: python django django-queryset django-filter