HTML页面中的DJango Jinja逻辑,无法显示html代码段

时间:2017-12-15 07:59:16

标签: html django include jinja2 code-snippets

我在html页面中有以下代码,并尝试使用jinja逻辑在特定地方嵌入html(在博客/关于我的html部分)

无法运作的代码(详见下文详情)

<!-- About Section (Blog)-->
    <section class="bg-primary text-white mb-0" id="about">
      <div class="container">
        <h2 class="text-center text-uppercase text-white">Blog</h2>
        <hr class="star-light mb-5">
        <div class="row">
          <div class="col-lg-4 ml-auto">
            <p class="lead">This is the blog section</p>
            {%block content%}
            {%endblock %}
          </div>
          <div class="col-lg-4 mr-auto">
            <p class="lead">The blogs outlined in the models section and stored in the database, are going to be displayed here.</p>

          </div>

这两行通常会产生一个htmlsnippet输出:

            {%block content%}
            {%endblock %}

在网站的另一个地方(位于底部)我使用了相同的逻辑,并且片段输出显示正常。

运行正常的代码

    <!-- Custom scripts for this template -->
    <script src="/static/js/freelancer.min.js"></script>

  <div>
    {%block content%}
    {%endblock %}
  </div>

  </body>

</html>

我得到的错误是:

'block' tag with name 'content' appears more than once
141           <div class="col-lg-4 ml-auto">
142             <p class="lead">This is the blog section</p>
143             {%block content%}
144             {%endblock %}
145           </div>
146           <div class="col-lg-4 mr-auto">
147             <p class="lead">The blogs outlined in the models section and stored in the database, are going to be displayed here.</p>
148             
149           </div>
150          <div>
151             {%block content%}
152             {%endblock %}
153         </div>  

当然,我注意到错误表示:&#39;阻止&#39;标记名称&#39;内容&#39;出现不止一次......但我的问题是

  1. 注意到我知道如何修复错误(只使用一次内容),那么包含html片段的最佳方法是什么,更重要的是,一个html片段说,有帖子,这些帖子是从数据库? Jinja逻辑如下所示使用块内容是唯一的方法,还是有更好的方法?
  2. 例如,我在同一个django项目中的其他应用程序中有其他html代码段(例如在blog / templates / blog / post.html中)...这也扩展了主页,但是我如何将其包含在主页?我不太了解结构以及如何引用不同目录中的内容。即使它们必须位于同一目录中,如果只能包含一个html片段,它如何检查它引用的文件夹?

    结构:

    C:\ Users \ User \ Desktop \ Django Tutorials \ understanding_html_setup \ pythonsite \ mysite \ aboutme \ templates 这是header.html和home.html实时的标题(标题是现在主要引导索引页面的位置) 这里还有另一个名为&#39; includes&#39;其中包含所有html片段,例如&#39; mysnippet.html&#39;。

    重要提示: **这就是这个&#39; aboutme.html&#39;这是在上面的jinja逻辑中引用的。** C:\ Users \ User \ Desktop \ Django Tutorials \ understanding_html_setup \ pythonsite \ mysite \ aboutme \ templates \ aboutme \ includes \ mysnippet.html

    其他应用,例如博客:

    C:\ Users \ User \ Desktop \ Django Tutorials \ understanding_html_setup \ pythonsite \ mysite \ blog \ templates \ blog 是我的地方 blog.html和post.html

    如何在上面显示的代码段(主页)中包含post.html或blog.html的内容

    最后说明:

    home.html页面包含此代码,我注意到该代码包含了aboutme代码段。但问题仍然存在,我如何包含其他片段,以及了解这种结构以及如何将它们结合在一起的最佳方法。也欢迎使用教程或链接参考。

    home.html (在:C:\ Users \ User \ Desktop \ Django Tutorials \ understanding_html_setup \ pythonsite \ mysite \ aboutme \ templates \ aboutme \ home.html)

    {%extends "aboutme/header.html" %}
    
    {%block content%}
    <p>Welcome to this "about" page that is all about the website: </p>
    
    
    {%include "aboutme/includes/mysnippet.html"%}
    
    {% endblock %}
    

    我认为对于最佳和最简单的设置的任何指导对于SO Django初学者都是非常宝贵的。是否有流程或图表清楚地显示应该如何从html和显示的角度排列事物?

    更新:

    根据以下答案,我更改了内容&#39;命名为其他东西,它确实允许包含其他代码段。谢谢!

    我仍然不知道a)组织html页面和包含片段的最佳方式,以及如何包含从数据库中绘制的页面:帖子:

    我试过这个 - 试图包含post.html但它不起作用 - 它只是弄乱格式化并在引导页面的其他地方重复博客部分。

    {%extends "aboutme/header.html" %}
    
    {%block content%}
    <p>Welcome to this "about" page that is all about the website:</p>
    
    
    {%include "aboutme/includes/mysnippet.html"%}
    {% endblock %}
    
    
    {%block moose%}
    
    <p>This is test text that says moose</p>
    {%include "blog/post.html"%}
    
    
    {% endblock %}
    

    &#39;驼鹿&#39;文本确实显示,但不显示博客/帖子。

    post.html(在博客应用中)是:

    {% extends "aboutme/header.html" %}
    
    {%block content %}
        <h3>{{post.title}}</h3>
        <h6>on{{post.date}}</h6>
        {{post.body|safe|linebreaks}}
    {% endblock %}
    

0 个答案:

没有答案