Как узнать, какая страница перенаправляется на 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 раз.