Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 将其他应用程序扩展到我的模板工作_Django - Fatal编程技术网

Django 将其他应用程序扩展到我的模板工作

Django 将其他应用程序扩展到我的模板工作,django,Django,我想将另一个模板扩展到我的blog.html,无论我是否尝试扩展它,它都不起作用。 blog/index.html {% block nav %} <ul id="nav"> <li>{% block nav-blog %}<a href="/blog/">Blog</a>{% endblock %}</li> <li>{% block nav-photo %}<a href="

我想将另一个模板扩展到我的blog.html,无论我是否尝试扩展它,它都不起作用。 blog/index.html

{% block nav %}
    <ul id="nav">
        <li>{% block nav-blog %}<a href="/blog/">Blog</a>{% endblock %}</li>
        <li>{% block nav-photo %}<a href="/photo/">Photo</a>{% endblock %}</li>
    </ul>
{% endblock %}
<div class="news">
    {% block polls %}   
        {% extends 'polls/index.html' %}
    {% endblock %}
<div>
{% if latest_poll_list %}
    <ul>
        {% for poll in latest_poll_list %}
            <li><a href="{% url 'polls:detail' poll.id %}">{{ poll.question }}</a></li>
        {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}
{%block nav%}
  • {%block nav blog%}{%endblock%}
  • {%block nav photo%}{%endblock%}
{%endblock%} {%block polls%} {%extends'轮询/index.html%} {%endblock%}
polls/index.html

{% block nav %}
    <ul id="nav">
        <li>{% block nav-blog %}<a href="/blog/">Blog</a>{% endblock %}</li>
        <li>{% block nav-photo %}<a href="/photo/">Photo</a>{% endblock %}</li>
    </ul>
{% endblock %}
<div class="news">
    {% block polls %}   
        {% extends 'polls/index.html' %}
    {% endblock %}
<div>
{% if latest_poll_list %}
    <ul>
        {% for poll in latest_poll_list %}
            <li><a href="{% url 'polls:detail' poll.id %}">{{ poll.question }}</a></li>
        {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}
{%if-latest\u poll\u list%}
    {最新轮询列表%中的轮询百分比}
  • {%endfor%}
{%else%} 没有投票

{%endif%}
通常必须将扩展卡在模板顶部,而不是模板中的某个位置。
在模板中,使用在基础模板中设置的标记

您需要确保在这里做两件事:

  • 在index.html中声明一个“nav”块。这将让django知道当模板
    扩展它时,您希望覆盖的索引html部分。您在索引html的“nav”块中放置的任何内容都将被视为默认内容
  • 您需要在blog.html的开头使用“extends”模板标记,以便django知道您要扩展的模板
  • 像这样:

    index.html

    {% block nav %}
      <div>
         Some default html here..
      </div>
    {% endblock %}
    
    {% extends index.html %}    
    {% block nav %}
      <div>
         This is what will render
      </div>
    {% endblock %}
    

    此外,在尝试扩展它以验证django是否找到该模板之前,您还需要测试
    index.html
    。如果不是,那么您需要将找到它的目录添加到
    settings.py
    文件中的
    TEMPLATE\u DIRS
    数组中。

    是的,没错,但是如果我放在页面顶部,它不会显示为嗯,那么请确保您可以访问模板而不扩展它,还要确保在设置文件中正确设置了这些模板路径。