Задать вопрос

Почему не наследуется блок {% block nav %} в блоке {% block content %} в django?

Почему то при попытке унаследовать {% block nav %} в блоке {% block content %} из главного файла base.html в файл create_post.html блок не наследуется, а отображает всё кроме него самого, как унаследовать блок навигации сайта?

base.html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>{% block title %} Главная {% endblock %}</title>
</head>
<body>
    {% block content %}
        {% if user.is_authenticated %}
            {% block nav %}
                <div>
                    <nav>
                        <div>
                            <h1>Главная</h1>
                            <ul>
                                <li>
                                    <a href="/">Главная</a>
                                </li>
                                <li>
                                    <a href="/posts">Блог</a>
                                </li>
                                <li>
                                    <a href="/help">Помощь</a>
                                </li>
                                <li>
                                    <form action="{% url 'logout' %}" method="post">
                                        {% csrf_token %}
                                        <button type="submit">Выйти</button>
                                    </form>
                                </li>
                            </ul>
                        </div>
                    </nav>
                </div>
            {% endblock %}
                <div>
                {% for posts in post_title reversed %}
                    <h3><a href="/posts/{{ posts.id }}">{{ posts.title }}</a></h3>
                {% endfor %}
            </div>
        {% else %}
            <div>
                <nav>
                    <div>
                        <div>
                            <h1>Главная</h1>
                            <ul>
                                <li>
                                    <a href="/">Главная</a>
                                </li>
                                <li>
                                    <a href="/posts">Блог</a>
                                </li>
                                <li>
                                    <a href="/help">Помощь</a>
                                </li>
                                <li>
                                    <form action="{% url 'login' %}" method="post">
                                        {% csrf_token %}
                                        <button type="submit">Войти</button>
                                    </form>
                                    <form action="{% url 'signup' %}" method="post">
                                        {% csrf_token %}
                                        <button type="submit">Регистрация</button>
                                    </form>
                                </li>
                            </ul>
                        </div>
                    </div>
                </nav>
            </div>
            <div>
                {% for posts in post_title reversed %}
                    <h3><a href="/posts/{{ posts.id }}">{{ posts.title }}</a></h3>
                {% endfor %}
            </div>
        {% endif %}
    {% endblock %}

</body>
</html>

create_post.html
{% extends 'forum/base.html' %}

{% block title %} Новый пост {% endblock %}

{% block content %}
    {% if user.is_authenticated %}
        
        {% block nav %}
        {% endblock %}
        
        <h1>Напишите свой пост</h1>
        <form action="{% url 'add_post' %}" method="post">
            {% csrf_token %}
            <div>
                <label>
                    <input name="title" placeholder="Заголовок...">
                </label>
            </div>
            <div>
                <label>
                    <textarea name="description" placeholder="Текст поста..."></textarea>
                </label>
            </div>
            <div><input type="submit"></div>
        </form>
    {% else %}
        <h1>Вы не авторизованы</h1>
        <form action="{% url 'login' %}" method="post">
            {% csrf_token %}
            <button type="submit">Войти</button>
        </form>
        <form action="{% url 'signup' %}" method="post">
            {% csrf_token %}
            <button type="submit">Регистрация</button>
        </form>
    {% endif %}
{% endblock %}
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
datka
@datka
base.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>
      {% block title %}
        Главная
      {% endblock %}
    </title>
  </head>
  <body>
    {% if user.is_authenticated %}
      <div>
        <nav>
          <div>
            <h1>Главная</h1>
            <ul>
              <li>
                <a href="/">Главная</a>
              </li>
              <li>
                <a href="/posts">Блог</a>
              </li>
              <li>
                <a href="/help">Помощь</a>
              </li>
              <li>
                <form action="{% url 'logout' %}" method="post">
                  {% csrf_token %}
                  <button type="submit">Выйти</button>
                </form>
              </li>
            </ul>
          </div>
        </nav>
      </div>
      <div>
        {% for posts in post_title reversed %}
          <h3><a href="/posts/{{ posts.id }}">{{ posts.title }}</a></h3>
        {% endfor %}
      </div>
    {% else %}
      <div>
        <nav>
          <div>
            <div>
              <h1>Главная</h1>
              <ul>
                <li>
                  <a href="/">Главная</a>
                </li>
                <li>
                  <a href="/posts">Блог</a>
                </li>
                <li>
                  <a href="/help">Помощь</a>
                </li>
                <li>
                  <form action="{% url 'login' %}" method="post">
                    {% csrf_token %}
                    <button type="submit">Войти</button>
                  </form>
                  <form action="{% url 'signup' %}" method="post">
                    {% csrf_token %}
                    <button type="submit">Регистрация</button>
                  </form>
                </li>
              </ul>
            </div>
          </div>
        </nav>
      </div>
      <div>
        {% for posts in post_title reversed %}
          <h3><a href="/posts/{{ posts.id }}">{{ posts.title }}</a></h3>
        {% endfor %}
      </div>
    {% endif %}

    {% block content %}

    {% endblock %}
  </body>
</html>


create_post.html
{% extends 'forum/base.html' %}

{% block title %}
  Новый пост
{% endblock %}

{% block content %}
  {% if user.is_authenticated %}
    <h1>Напишите свой пост</h1>
    <form action="{% url 'add_post' %}" method="post">
      {% csrf_token %}
      <div>
        <label><input name="title" placeholder="Заголовок..." /></label>
      </div>
      <div>
        <label><textarea name="description" placeholder="Текст поста..."></textarea></label>
      </div>
      <div>
        <input type="submit" />
      </div>
    </form>
  {% else %}
    <h1>Вы не авторизованы</h1>
    <form action="{% url 'login' %}" method="post">
      {% csrf_token %}
      <button type="submit">Войти</button>
    </form>
    <form action="{% url 'signup' %}" method="post">
      {% csrf_token %}
      <button type="submit">Регистрация</button>
    </form>
  {% endif %}
{% endblock %}


Не совсем понял вашу логику. Но Nav дожен идти до block content
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Strikt Москва
от 100 000 до 180 000 ₽
ITK academy Саратов
от 75 000 ₽
Sim-Ba Pay Санкт-Петербург
от 180 000 ₽