У меня есть функция просмотра:
@login_required
def myview():
# do something
# respond something
pass
Как я могу указать точный URL-адрес для перенаправления этой функции просмотра?
У меня есть функция просмотра:
@login_required
def myview():
# do something
# respond something
pass
Как я могу указать точный URL-адрес для перенаправления этой функции просмотра?
вы можете сделать это, на ваш взгляд, отлично работает для меня, не объявляя в settings.py
from django.contrib.auth.decorators import login_required
@login_required(login_url='/example url you want redirect/') #redirect when user is not logged in
def myview(request):
do something
return something #returns when user is logged in
re_path(r"login$", LoginView.as_view(template_name="registration/login_form.html"), name="player_login")
тогда декоратор @login_required(login_url="player_login")
Конечно, он заменяет login_url и login_url_redirect в настройках. Спасибо, что поделился.
- person Doogle; 14.10.2018
login_required
.
- person Rishabh Agrahari; 22.11.2018
URL-адрес для входа по умолчанию: '/accounts/login/'
если вы хотите изменить его, перейдите в settings.py
LOGIN_URL='/path/to/url'
LOGIN_REDIRECT_URL='/path/to/redirecturl'
это из документации должно быть полезно: https://docs.djangoproject.com/en/1.5/topics/auth/default/#the-login-required-decorator
@login_required(login_url='/accounts/login/')
def my_view(request):
...
Перейдите к вашему файлу settings.py. Вы можете добавить это в любом месте вашего файла settings.py, но я предпочитаю размещать его внизу. LOGIN_URL = '/логин/'
ПРИМЕЧАНИЕ. «/login/» — это сегмент URL-адреса, который приводит пользователя на страницу входа. Полный URL-адрес похож на этот «myexample.com/login/».
добавить ниже код
LOGIN_REDIRECT_URL = 'path/to/url'
а затем импортируйте этот LOGIN_REDIRECT_URL в свои представления и добавьте
`@login_required(login_url=LOGIN_REDIRECT_URL)`
в верхней части ваших представлений, которые вы хотите ограничить, это будет работать
вы также можете взять URL из поля зрения
Например
path('login/', login_view, name='login_name'),
тогда декоратор будет
@login_required(login_url='login_name')