Как отфильтровать набор запросов View List на основе статуса пользователя - PullRequest
0 голосов
/ 03 апреля 2019

Эй, у меня есть listView, который выводит список созданных событий.Как я могу фильтровать по суперпользователю?

По сути, я хочу, чтобы администратор видел все события: закрытые и открытые, но мои пользователи видят только одно открытое

class EventView(ListView, LoginRequiredMixin):
    template_name = "chat/events.html"
    model = Event
    context_object_name = 'events' 

    def get_queryset(self):
        kwargs = super(EventView, self).get_form_kwargs()
        print(kwargs)
        user_pk = self.kwargs['user_id']
        user = User.objects.get(pk=user_pk)
        print(user)
        if user.is_superuser:
            queryset = Event.objects.all()
            return queryset
        else:
            queryset = Event.objects.filter(is_open=True)
            return queryset
        return queryset

1 Ответ

0 голосов
/ 03 апреля 2019

вы очень близки, вам просто нужно войти в систему и соответствующим образом подготовить набор запросов: -

 def get_queryset(self):
    if self.request.user.is_superuser:
        queryset = Event.objects.all()
    else:
        queryset = Event.objects.filter(is_open=True)

    return queryset
...