【问题标题】:Filter "get_context_data" using multiple data on a ListView使用 ListView 上的多个数据过滤“get_context_data”
【发布时间】:2019-02-22 09:00:54
【问题描述】:

在我的 ListView 中,我想过滤当前用户从 context_data 中登录的数据:

views.py

class DashboardListView(LoginRequiredMixin,ListView):
model = Links
template_name = 'dashboard/home.html'
context_object_name ='links_list'
paginate_by = 15

def get_context_data(self, **kwargs):

    context = super().get_context_data(**kwargs)

    context['dashboard_list']= Dashboard.objects.filter()[:15]
    context['todo_list']= Todo.objects.all().order_by('-pk')[:15]
    context['todo_complete']= Todo.objects.all().count()
    context['PasswordUsername_list']= PasswordUsername.objects.all()
    return context

我尝试使用 query_set 进行覆盖,但它确实适用于链接模型

【问题讨论】:

    标签: python django django-views django-class-based-views


    【解决方案1】:

    好吧,您需要过滤所有这些查询。

    context['dashboard_list']= Dashboard.objects.filter(user=self.request.user)[:15]
    context['todo_list']= Todo.objects.filter(user=self.request.user).order_by('-pk')[:15]
    

    等 - 假设您的模型都有一个指向 User 模型的 user FK 字段。

    【讨论】:

      【解决方案2】:

      查看下面的答案,但不要忘记添加:

      def get_queryset(self):
          return self.model.objects.filter(user=self.request.user)
      

      到您的 ListView 否则仍会显示第一个模型。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-18
        • 2021-04-06
        • 2014-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多