Показывать контент-фильтр пользователем на расширенном CB - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь показать сообщение только с контентом текущего пользователя, вошедшего в систему на ListView, но ответ здесь: Как сделать так, чтобы универсальный ListView отображал только данные пользователя? нерешить мою проблему, потому что мой ListView использовал 4 модели

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.all()[: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

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

Я попытался добавить get_context и get_query_set но он скрывает только модель ссылки.

Спасибо

1 Ответ

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

Я понял это благодаря другому посту

В views.py

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

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

def get_context_data(self, **kwargs):

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

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

Вы должны отфильтровать контекст с помощью "yourmodel.objects.filter(author = self.request.user) "И набор запросов

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