Пытаюсь прописать условие для отображения той или иной кнопки в html - помогите, пожалуйста
Всем доброго времени суток! Наверняка тут что - то простое, но я уже всяко писала и не понимаю уже - как тут нужно. Имеется шаблон навигации для отображения страниц html.
{% load static %}
{% if request.user.is_authenticated %}
<div id="current_link">
<ul class="top-menu" >
<li><a href="{% url 'questionnaire:home' %}">Главная</a></li>
<li><a href="{% url 'about:project' %}">О проекте</a></li>
<li><a href="{% url 'about:tech' %}">Технологии</a></li>
{% for questionnaire in page_obj %}
{% if request.user.id == questionnaire.user.id %}
<li><a href="{% url 'questionnaire:questionnaire_edit' user.id %}">Редактировать анкету</a></li>
{% if request.user.id != questionnaire.user.id %}
<li><a href="{% url 'questionnaire:questionnaire_create' %}">Опубликовать анкету</a></li>
{% endif %}
{% endif %}
{% endfor %}
<li><a href="{% url 'users:reset_password' %}">Сбросить пароль</a></li>
<li><a href="{% url 'users:logout' %}">Выход</a></li>
<span style="color:green">Ваш ник: {{ user.username }}</span>
{% else %}
<div id="current_link">
<ul class="top-menu">
<li><a href="{% url 'users:signup' %}">Регистрация</a></li>
<li><a href="{% url 'users:login' %}">Войти</a></li>
<li><a href="{% url 'about:project' %}">О проекте</a></li>
<li><a href="{% url 'about:tech' %}">Технологии</a></li>
{% endif %}
</ul>
</div>
Собственно блок кода с кнопкой "Опубликовать анкету" - просто не работает. Кнопка "Редактировать" отображается как надо.
У меня есть модель Questionnaire(в ней анкеты пользователей) и User(django.contrib.auth). Юзер регистрируется на сайте - заходит на главную страницу - и если у него нет анкеты должна отобразиться кнопка "Опубликовать", если есть анкета то "Редактировать".
Подскажите пожалуйста куда смотреть, я уже запуталась. Может что то лишнее у меня, или что я не учла? Заранее благодарствую за любой комментарий!
Если пишу так
{% for questionnaire in page_obj %}
{% if questionnaire.user == request.user %}
<li><a href="{% url 'questionnaire:questionnaire_edit' user.id %}">Редактировать анкету</a></li>
{% else %}
<li><a href="{% url 'questionnaire:questionnaire_create' %}">Опубликовать анкету</a></li>
{% endif %}
{% endfor %}
Тогда условие отрабатывает, но дублируются кнопки..
Юзер с анкетой
Юзер без анкеты
Как убрать тогда дублирование кнопок, может подскажет кто-нибудь?
Если убираю {% for questionnaire in page_obj %} .... {% endfor %} - тогда отображается кнопка Опубликовать для всех... т.е. первое условие не отрабатывает...
Условие исправлено на такое:
{% if request.user.questionnaire %}
<li><a href="{% url 'questionnaire:questionnaire_edit' user.id %}">Редактировать анкету</a></li>
{% else %}
<li><a href="{% url 'questionnaire:questionnaire_create' %}">Опубликовать анкету</a></li>
{% endif %}
Т.е. если у текущего юзера уже есть экземпляр модели questionnaire то показываем одну кнопку, если нет - другую ) Оказалось просто и логично!