Есть ли способ сделать так, чтобы страница открывалась только для вошедшего пользователя

Я пытаюсь сделать эту страницу только для вошедшего пользователя и когда я пишу @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 %}
Вернуться на верх