Текущая переменная пользователя в классе ListView - PullRequest
0 голосов
/ 15 марта 2020

Я хочу выполнить запрос к базе данных, используя текущего пользователя, вошедшего в класс ListView. Затем после этого я хочу поместить эти результаты в переменную extra_context, чтобы получить доступ к ним на странице html. Посмотрев на разных веб-сайтах, я нашел этот кусок кода:

class className(LoginRequiredMixin, ListView):
context_object_name = 'contextName'
template_name = 'app_list.html'

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

Как я могу поместить текущего пользователя в переменную, которую я могу использовать позже в запросе к базе данных, чтобы я мог использовать его следующим образом ( Я не хочу использовать текущую пользовательскую переменную в HTML. Я хочу для доступа к этой переменной внутри самого класса):

class className(LoginRequiredMixin, ListView):
    def get_queryset(self):
        return User.objects.filter(user=self.request.user)

    user = THIS IS WHERE I WANT THE CURRENT USER VALUE
    context = {
        'friends': friends.Objects.filter(friendId = user.id)
    }

    model = User
    template_name = friends/friend.html
    context_object_name = 'friends'

1 Ответ

0 голосов
/ 15 марта 2020

вы можете переопределить метод получения данных контекста.

def get_context_data(self, **kwargs):
    context = super(ClassName, self).get_context_data(**kwargs)
    context['user_obj'] = Userproject.objects.filter(user=self.request.user)
    return context

вы можете использовать user_obj в шаблонах

...