Django CBV не отображается на странице при редактировании контекста
Вид внизу должен показывать задачи для зарегистрированного пользователя, но когда я просматриваю задачи постранично, я получаю
Cannot filter a query once a slice has been taken.
как мне фильтровать контекст, чтобы избежать ошибки при пагинации?
class TaskList(LoginRequiredMixin, ListView):
model = Task
context_object_name = 'tasks'
template_name = 'TaskList.html'
paginate_by = 2
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['tasks'] = context['tasks'].filter(user=self.request.user)
return context
Используйте get_queryset()
для фильтрации объектов в ListView
:
def get_queryset(self): # noqa: D102
queryset = super().get_queryset()
return queryset.filter(user=self.request.user)
Фильтрация в методе get_queryset()
должна решить проблему - также удалите перегрузку метода get_context_data()
, она не нужна.