Как установить ограничения доступа пользователей в Django
первый вопрос. Есть ли способ установить права доступа для функции, не задавая условного выражения в шаблоне django?
В настоящее время ниже приведен код, который я написал. Если пользователь нажимает на текст "Click", то в зависимости от условия создается модальное окно, а если условие не выполняется, то выводится окно с сообщением о том, что у вас нет прав доступа. Однако, я думаю, что нет необходимости вводить эти условия каждый раз.
{% if request.user.first_name in class.teacher|split:"/" %}
<div data-toggle="modal" data-target="#relation_{{ class.id }}" class-id="{{ class.id }}">Click</div>
{% else %}
<a onclick="alert('You do not have access rights..');" class="col-form-label col-10 show-whitespace" style="cursor:pointer">Click</a>
{% endif %}
Второй вопрос. Этот пример аналогичен. С помощью условного выражения в шаблоне, если рабочее место текущей учетной записи входа в систему является "главным", кнопка "Главный" отображается. Если это не основное рабочее место, кнопка Principal не отображается на экране. Однако, даже если это не principal, пользователь может подключиться, введя url '/class/principal/list' напрямую. Есть ли обходной путь?
{% if job_title == 'principal' %}
<a class="btn nav-link nav-link-button" href="/class/principal/list">
<span>principal</span>
</a>
{% else %}
<a class="btn nav-link disabled nav-link-button" href="/class/principal/list">
<span>principal</span>
</a>
{% endif %}