Я создал блог с Django и всякий раз, когда пользователь входит в систему, URL перенаправляется на домашнюю страницу и отображает сообщение об успешном завершении. Это нормально, однако, всякий раз, когда требуется логин для просмотра определенной страницы, Django перенаправляет на страницу входа и присоединяет «? Next =» к концу URL, чтобы перенаправить обратно на предыдущую страницу. Проблема в том, что после входа пользователя «следующий» URL-адрес не выполняется, а Django перенаправляет на домашнюю страницу и отображает сообщение об успехе? Есть ли способ отключить это перенаправление, когда есть «следующий» URL?
views.py
from django.urls import reverse
from django.contrib import messages
from django.shortcuts import render, redirect
from django.contrib.auth import login
from django.utils.safestring import mark_safe
from .forms import UserLoginForm
def login_view(request):
if request.method == 'POST':
form = UserLoginForm(data=request.POST)
if form.is_valid():
student = form.get_user()
login(request, user)
create_url = reverse('post-create')
messages.success(request, mark_safe(f'You are now logged in. Do you want to <a href="{ create_url }" class="link" title="Create a post">create a post</a>?'))
return redirect('home')
else:
form = UserLoginForm()
return render(request, 'users/login.html', {'form': form, 'title': 'Log in'})