Фильтруйте «get_context_data», используя несколько данных в ListView - PullRequest
0 голосов
/ 22 февраля 2019

В моем 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 , но он работает только для модели ссылок

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

См. Ответ ниже, он работает, но не забудьте добавить:

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

В ваш ListView, в противном случае первая модель все равно будет отображаться.

0 голосов
/ 22 февраля 2019

Ну, вам нужно отфильтровать все эти запросы.

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 FK, указывающее на модель пользователя.

...