Django中的任务列表视图

bxgwgixi  于 2023-10-21  发布在  Go
关注(0)|答案(1)|浏览(150)

我一直在尝试做一个待办事项应用
我试图为每个用户制定他们自己的待办事项列表,只列出他们没有完成的任务,
正确获取 * 上下文 * 数据不接受过滤功能,因为模板上没有显示任务

  1. `
  2. class TaskList(LoginRequiredMixin, ListView):
  3. model = Task
  4. context_object_name = "tasks"
  5. def get_context_data(self, **kwargs):
  6. context = super(TaskList, self).get_context_data(**kwargs)
  7. context["tasks"] = context["tasks"].filter(user=self.request.user)
  8. context["count"] = context["tasks"].filter(complete=False).count()
  9. return context`
llmtgqce

llmtgqce1#

只需使用**.get_queryset()**[Django-doc]进行过滤:

  1. class TaskList(LoginRequiredMixin, ListView):
  2. model = Task
  3. context_object_name = 'tasks'
  4. def get_queryset(self):
  5. return super().get_queryset().filter(user=self.request.user)
  6. def get_context_data(self, **kwargs):
  7. context = super().get_context_data(**kwargs)
  8. context['count'] = self.object_list.filter(complete=False).count()
  9. return context

您可能还希望在get_queryset中过滤complete=False

注意:从PEP-3135 [pep]开始,如果第一个参数是定义方法的类,第二个参数是函数的第一个参数(通常是self),则不需要带参数调用super(…)

展开查看全部

相关问题