包含模板标签在django中不起作用

Dev*_*Dev 11 django

我的Views.py文件如下所示

  def homepage(request):
      template = 'homepage.html'
      list_display_template = 'list.html'
      list = model.objects.all()

      return render_to_response(template,
           {'list_display_template': list_display_template,
            'list' : list,},
            context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

我的homepage.html如下所示: -

  {% extends "base.html" %}

  {% block main_content %}
      {% include list_display_template %}
  {% endblock %}
Run Code Online (Sandbox Code Playgroud)

我的list_display_template(list.html)有以下信息

  < div class= "span10">
     {% for item in list %}
         <p> {{ item }}</p>
      {% endfor %}
  </div>
Run Code Online (Sandbox Code Playgroud)

以上工作在开发中工作正常,但在生产中,include标签不起作用,当我检查元素时,它没有显示list.html中的任何项目.有人可以帮忙吗?

编辑: - 我的文件夹结构如下

project_name/
    project_name/
         settings.py
    static/
       css/
       images/
    templates/
      homepage.html
      list.html
      base.html
Run Code Online (Sandbox Code Playgroud)

谢谢

ela*_*ver 16

我有同样的问题,但我会以其他有类似问题的用户可以理解的方式回答这个问题.

你可能有某种被包含的HTML文件的模板模块,该模块要么期待一个包含某种或导致其被调用一个Django的通行证,因此,你无法看到错误异常的错误,如果你{% load someLoad %}在父模板中使用然后在包含的html中使用它,我想这会从版本变为版本.

在我(非常具体)的情况下,我在包含的html文件中丢失了这个:

{% load i18n %} 
{% load cms_tags sekizai_tags %}
Run Code Online (Sandbox Code Playgroud)

  • 我只是遇到了类似的问题而且几乎因此而疯狂.更复杂的是它只发生在生产服务器而不是我的机器上.后来,我发现我在其上使用'include'的导航栏上有我没有敲击的网址,因此引起了很多错误,但是他们被include语句沉默了.谢谢^ _ ^ (2认同)

and*_*sit 9

包含语句失败而不引发错误的另一种情况是,如果您正在使用扩展另一个模板的模板,并且您的包含在命名块之外

{% extends "my_base.html" %}

{% block content %}
    {{ block.super }}
    {% include "partials/file1.html" %}
{% endblock %}

{% include "partials/file2.html" %}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,file2.html 将不会被包含,因为它不在块中,并且您不会收到警告消息,并且会在您意识到自己所做的事情之前尝试各种事情:-)


Nan*_*ert 5

我刚刚遇到了类似的问题。我能够通过临时复制并粘贴我想要直接包含到父页面(base.html)中的html(即navigation.html)来诊断它。看起来,如果包含的 html 中有错误,它只是不会被读入,也不会出现错误。

将 navigation.html 中的代码粘贴到 base.html 中后,我收到了 500 错误,因为 navigation.html 中的指定网址之一没有反向。