Есть ли способ сделать так, чтобы страница открывалась только для вошедшего пользователя
Я пытаюсь сделать эту страницу только для вошедшего пользователя и когда я пишу @login_required
она ничего не делает и страница открывается для всех пользователей как это исправить
views.py
@login_required(login_url='accounts/login/')
@register.inclusion_tag('survey/survey_details.html', takes_context=True)
def survey_details(context, survey_id):
survey = Survey.objects.get(id=survey_id)
return {'survey': survey}
Декораторы Django выполняются снизу вверх. Попробуйте изменить порядок.
Возможно, вы захотите попробовать @login_required(login_url='/accounts/login/')
.
Альтернативный подход, который можно использовать в будущем, заключается в том, что вы можете решить эту проблему из самого шаблона.
В вашем html
файле вы можете проверить, аутентифицирован ли пользователь.
# Doing the check here...
{% if request.user.is_authenticated %}
...
# You're able to see what is on this page...
# Having that html code in this portion of the if statement.
...
{% else %}
...
# Please log in to see what is on this page...
...
{% endif %}