Как узнать, какая страница перенаправляется на url входа в систему с помощью декоратора @login_required в django?

У меня есть две страницы, для доступа к которым необходимо войти в систему, обе они перенаправляют на url входа с декоратором @login_required

@login_required
def ask_question(request)


@login_required
def answer_question(request)

и я хотел бы вывести сообщение на странице входа, которое будет зависеть от страницы, которая перенаправляет на вход.

На обеих страницах есть ссылка на одной и той же странице, на индексной странице, поэтому я не могу использовать запрос origin, потому что они имеют одинаковое происхождение.

Нравится :

Для того чтобы задать вопрос, необходимо быть зарегистрированным (если пользователь пришел с перенаправления "Задать вопрос перенаправление вопроса)

Вы должны быть зарегистрированы, чтобы ответить на вопрос (если пользователь пришел по перенаправлению перенаправления ответа)

Приветствует

например

@login_required(login_url='signin')

write your views here

return render(request, 'path/#####.html', context )

когда пользователь вошел в систему, ваш возврат приведет его на нужную вам страницу

Вы можете использовать messages фреймворк django для обеих страниц.

Например:

Если кто-либо заходит на страницу question, с кнопки говорит ее название ask question, поэтому сделайте для нее представление типа:

from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.shortcuts import render

@login_required(login_url='/login-route/')
def ask_question(request):
    messages.success(request, 'You need to login to ask the question.')
    context{}
    return render(request,'appname/anyfile.html',context)


@login_required(login_url='/login-route/')
def answer_to_an_question(request):
    context={}
    messages.success(request, 'You need to login to answer the question.')
    return render(request,'appname/anyfile.html',context)

Вы можете использовать любой messages, например error,success,warning и т.д., тогда он перенаправит его на следующую url. Затем на странице redirected, куда перейдет пользователь, появится сообщение, скажем, на странице login, где вы можете показать его в формате:

{% if messages %}
<ul class="messages">
    {% for message in messages %}
    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
    {% endfor %}
</ul>
{% endif %}

Лучшая часть использования django messages заключается в том, что он появится только one раз.

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