Как перенаправить назад две страницы Django?
У меня есть страница книги. На этой странице есть кнопка "В избранное". Если пользователь нажмет на кнопку и будет аутентифицирован, то он использует представление addBookmark для добавления нового объекта в базу данных (и просто перезагрузит страницу книги). Однако, если пользователь не аутентифицирован, то сначала произойдет перенаправление на страницу входа.
@login_required
def addBookmark(request, slug):
book = Book.objects.get(slug=slug)
if BookMark.objects.filter(user=request.user, book=book).exists():
bookMark = BookMark.objects.get(user=request.user, book=book)
bookMark.delete()
return HttpResponseRedirect(request.META.get("HTTP_REFERER"))
newBookMark = BookMark.objects.create(user=request.user, book=book)
newBookMark.save()
return HttpResponseRedirect(request.META.get("HTTP_REFERER"))
Проблема: Когда пользователь перенаправляется на страницу входа, следующий URL просто добавляет новый объект в db и перезагружает страницу, но это страница входа. Как я могу перенаправить пользователей обратно на страницу книги, если пользователь сначала не прошел аутентификацию?
Вы можете перенаправить пользователя вручную следующим образом:
if not request.user.is_authenticated:
return redirect("bookmark_url")