我的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))
我的homepage.html如下所示: -
{% extends "base.html" %}
{% block main_content %}
{% include list_display_template %}
{% endblock %}
我的list_display_template(list.html)有以下信息
< div class= "span10">
{% for item in list %}
<p> {{ item }}</p>
{% endfor %}
</div>
以上在开发中工作正常,但在生产中,include标签不起作用,当我检查元素时,它没有显示list.html中的任何项目。有人可以帮忙解决这个问题。
编辑: - 我的文件夹结构如下
project_name/
project_name/
settings.py
static/
css/
images/
templates/
homepage.html
list.html
base.html
由于
答案 0 :(得分:16)
我遇到了同样的问题,但我会以其他有类似问题的用户可以理解的方式回答这个问题。
你可能在包含的html文件中有某种模板块,
这个块要么是期望某种类型的包含,要么是导致错误调用django传递的异常,因此你无法看到错误,
如果您在父模板中使用{% load someLoad %}
,那么也可以在包含的html中使用它,
我想这会从版本变为版本。
在我(非常具体)的情况下,我在包含的html文件中遗漏了这个:
{% load i18n %}
{% load cms_tags sekizai_tags %}
答案 1 :(得分:4)
我遇到了类似的问题。我能够通过临时复制和粘贴我想要直接包含在父页面(base.html)中的html(即navigation.html)来诊断它。似乎如果包含的html中存在错误,它就不会被读入并且不会出现错误。
将navigation.html中的代码粘贴到base.html后,我收到500错误,因为navigation.html中的某个已命名的网址没有反转。
答案 2 :(得分:3)
如果包含模板有任何问题/错误,默认情况下django不会显示错误。您可以使用设置变量TEMPLATE_DEBUG = True
启用它。然后,当您尝试加载该页面时,您将能够在模板中查看错误。
在上述情况下,所包含的模板中可能缺少某些加载标记{% load xxx %}
。
答案 3 :(得分:1)
包含语句失败而不会引发错误的另一种情况是,如果您正在使用扩展另一个模板的模板,并且 include 不在命名<强>块强>:
{% extends "my_base.html" %}
{% block content %}
{{ block.super }}
{% include "partials/file1.html" %}
{% endblock %}
{% include "partials/file2.html" %}
在这种情况下,不会包含file2.html,因为它不在一个块中,你将不会收到任何警告信息,并会在你意识到你所做的事情之前尝试各种各样的事情: - )