Используя Django и HTML, как я могу заблокировать кнопку на панели вкладок, пока кто-то не войдет в систему?
Моя боковая панель:
<div id = "mySidebar" class = "sidebar">
<a href = "javascript:void(0)" class = "closebtn" onclick = "closeNav()">×</a>
<a href = "/">Home</a>
<a href = "/accounts/login">Login</a>
<a href = "#">Profile</a>
<a href = "/upload">Upload</a>
<a href = "/top_photos">Top Photos</a>
<a href = "/aboutus">About Us</a>
<a href = "/contact">Contact Us</a>
</div>
Оператор блока:
{% block content %}
{% if user.is_authenticated %}
<h1 style = "text-align:right">Welcome {{ user.username }}!</h1>
{% else %}
<div class = "c">
<p>You are not logged in, log in to recolor a photo</p>
<a href = "/upload">
{% endif %}
{% endblock %}






Попробуйте использовать request.user.is_authenticated вместо user.is_authenticated. Я предполагаю, что вы не передаете объект User в свой шаблон в views.py, но вы почти наверняка передаете request, который будет содержать информацию о пользователе, если вы используете систему входа Django.
Попробуй это:
{% block content %}
{% if request.user.is_authenticated %}
<h1 style = "text-align:right">Welcome {{ user.username }}!</h1>
{% else %}
<div class = "c">
<p>You are not logged in, log in to recolor a photo</p>
<a href = "/upload">
{% endif %}
{% endblock %}
Где кнопка в вашем html-коде? Вы использовали тег
<a>везде, где нет<button>. Чтобы отключить кнопку, вы можете сделать<button disabled>Click Here</button>. Использование атрибутаdisabledделает кнопку неактивной и делает ее серой, если речь идет о визуальных изменениях. В случае<a>вам необходимо полностью удалить атрибут href, если пользователь не вошел в систему. Но обратите внимание, что это не очень хороший выбор с точки зрения взаимодействия с пользователем, поскольку это может создать впечатление, что ссылка не работает, а не отключена.