Я хочу направлять пользователей на определенную страницу в зависимости от их роли.Я хотел бы реализовать что-то подобное в представлении на основе классов.
def home_redirect(request):
user_role = Profile.objects.get(user = request.user).role
if user_role in internal_users:
return redirect(reverse_lazy('home'))
else:
return redirect(reverse_lazy('event_list'))
Мне известно о RedirectView.Но как я могу получить запрос в CBV, чтобы получить user.role, как в request.user.role
?Я знаю, что могу получить user.role в некоторых функциях в CBV, например:
class HomeRedirectView(RedirectView):
def get_context_data(self, **kwargs):
context = super(HomeRedirectView, self).get_context_data(**kwargs)
context['current_user'] = Profile.objects.get(user = self.request.user)
user_role = context['current_user'].role
return context
#Can't access user_role but if I could I would do something like this
if user_role in internal_users:
url = reverse_lazy('home')
else:
url = reverse_lazy('event_list')
Как я могу получить доступ к user_role вне get_context_data () в CBV?