Django 中的任务列表视图

问题描述 投票:0回答:1

我一直在尝试制作待办事项列表应用程序,

我正在尝试为每个用户制作自己的待办事项列表,仅包含他们未完成的任务,

正确获取上下文数据不支持过滤功能,因为模板上没有任务显示

 `
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`
python django django-views django-forms todoist
1个回答
0
投票

只需使用

.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
)。

© www.soinside.com 2019 - 2024. All rights reserved.