我一直在尝试制作待办事项列表应用程序,
我正在尝试为每个用户制作自己的待办事项列表,仅包含他们未完成的任务,
正确获取上下文数据不支持过滤功能,因为模板上没有任务显示
`
class TaskList(LoginRequiredMixin, ListView):
model = Task
context_object_name = "tasks"
def get_context_data(self, **kwargs):
context = super(TaskList, self).get_context_data(**kwargs)
context["tasks"] = context["tasks"].filter(user=self.request.user)
context["count"] = context["tasks"].filter(complete=False).count()
return context`
.get_queryset()
[Django-doc]: 进行过滤
class TaskList(LoginRequiredMixin, ListView):
model = Task
context_object_name = 'tasks'
def get_queryset(self):
return super().get_queryset().filter(user=self.request.user)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['count'] = self.object_list.filter(complete=False).count()
return context
您可能还想在
complete=False
中过滤 get_queryset
。
注意:自 PEP-3135 [pep] 起,如果第一个参数是定义方法的类,第二个参数是方法,则无需带参数调用
函数的第一个参数(通常为super(…)
)。self