Перенаправление Django на страницу сведений после аутентификации

#python #django

Вопрос:

вот мой код

 class UserProfileView(DetailView):
    template_name = 'main/userprofile.html'
    context_object_name = 'userprofile'
    model = ProfilePersonal
    
    # def dispatch(self, request, *args, **kwargs):
    #     if request.user.is_authenticated:
    #         pass
    #     else:
    #         return redirect('/accounts/login/?next=userprofile/6')
            
    #     return super().dispatch(request, *args, **kwargs)

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        comments_connected = Review.objects.filter(profile=self.get_object()).order_by('-date_created')
        context["comments"] = comments_connected
        context['comment_form'] = ReviewForm 
        return context

    def post(self, request, *args, **kwargs):
        if request.user.is_authenticated:
            new_comment = Review(content=request.POST.get('content'),
                                  rating=request.POST.get('rate'),
                                  profile=self.get_object(),
                                    user = self.request.user)
        else:
            return redirect(f'/accounts/login  next=userprofile/{self.get_object()}')
        
        new_comment.save()
        return self.get(self, request, *args, **kwargs)
 

Все работает нормально, за исключением того факта, что если пользователь попытается оставить комментарий, а пользователь не войдет в систему, он будет перенаправлен на страницу входа в систему, но после аутентификации я хочу перенаправить пользователя на страницу сведений о пользователе, с которой он был перенаправлен.
например, если я был перенаправлен с 127.0.0.1:8000/userprofile/6 после входа в систему, я должен быть перенаправлен на 127.0.0.1:8000/userprofile/6, чтобы продолжить то, что я делал

Ответ №1:

Я решил эту проблему с помощью

 return redirect(f'/accounts/login  next=userprofile/{self.get_object().id}')