使用 ListView 上的多个数据筛选 "get_context_data"
Filter "get_context_data" using multiple data on a ListView
在我的 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 覆盖,但它确实有效 仅 用于链接模型
嗯,您需要过滤所有这些查询。
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]
etc - 假设您的模型都有一个 user
FK 字段指向用户模型。
请参阅下面的答案,但不要忘记添加:
def get_queryset(self):
return self.model.objects.filter(user=self.request.user)
到您的 ListView,否则仍会显示第一个模型。
在我的 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 覆盖,但它确实有效 仅 用于链接模型
嗯,您需要过滤所有这些查询。
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]
etc - 假设您的模型都有一个 user
FK 字段指向用户模型。
请参阅下面的答案,但不要忘记添加:
def get_queryset(self):
return self.model.objects.filter(user=self.request.user)
到您的 ListView,否则仍会显示第一个模型。