Невозможно открыть какую-либо страницу при реализации следующего параметра в Django 3.2

Я использую Django 3.2. У меня есть мой пользовательский LoginView и я хотел бы реализовать следующий параметр, чтобы если кто-то попытается получить доступ к странице, где требуется вход, то после входа он перенаправит пользователя на эту страницу.

Я видел много решений, но они старые и я не могу реализовать их в своем коде.

views.py

class UpdatedLoginView(LoginView, CategoryMixin, TagMixin):
    form_class = LoginForm
    template_name = 'user/login.html'
    redirect_field_name='main/homepage.html'
    
    def post(self, request, *args, **kwargs):
        form = self.form_class(request.POST)
        if form.is_valid():
            if 'next' in request.POST:
                return redirect(request.POST.get('next'))
            else:
                return(redirect('homepage'))
        else:
            return render(request, self.redirect_field_name, {'form': form})

class HomePageView(LoginRequiredMixin, TemplateView):

    template_name = "main/homepage.html"

login.html

<form method="post" novalidate>
    {% csrf_token %}
    {{ form|crispy }}
    {% if request.GET.next %}
        <input type="hidden" name="next" value="{{ request.GET.next }}"/>
    {% endif %}
    <button type="submit">Login</button>
</form>

settings.py

LOGIN_REDIRECT_URL = 'homepage'
LOGOUT_REDIRECT_URL = 'login'

Проблема с моим решением заключается в том, что оно перенаправляет меня на домашнюю страницу, но как только я нажимаю на любую гиперссылку, она снова перенаправляет меня на страницу входа, и url выглядит следующим образом:

http://127.0.0.1:8000/?login=/article_list/

Во всех моих представлениях я использую LoginRequiredMixin mixin.

Как я могу решить эту проблему?

Вернуться на верх