【问题标题】:Django-Child template-Base.html not renderingDjango-Child template-Base.html 不呈现
【发布时间】:2012-09-29 17:34:07
【问题描述】:

我在我的应用程序中使用 Django 模板系统,并且在子模板中我相应地引用了 {% extends "base.html" %},尽管在重新渲染模板时,它只带有 html 标签,没有css 样式——因此完全没有选择 base.html 模板。 请告知我做错了什么?找不到我的 base.html 模板的位置会不会是个问题?

这是子模板代码:

{% extends "base.html" %}
{% block content %} 
{% for field in form %}
{{ form }} 
{% endfor %} 
{% endblock %}

这是base.html模板代码(相关部分):

<div id="content">
<h2>
                Page heading - This is where the functionality goes...
            </h2>
            <FIELDSET><INPUT class=Test value="Test" type=submit></FIELDSET>

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

如果您需要更多信息来解决此问题,请告诉我。

-我将在今晚(伦敦时间)添加views.py--

这一切都整理好了,非常感谢您的帮助

谢谢

【问题讨论】:

  • 如果您缺少样式 (CSS) 并且这些样式位于您的 STATIC 文件夹中,这可能是问题所在。
  • 基础模板是否可以单独工作(正确渲染,包括 CSS)?
  • 为什么要为每个表单域呈现相同的表单?
  • 嗨 Jingo/Josvic-基本模板可以单独使用 CSS 样式 - 我想我缺少一些子模板的 CSS 样式,是否需要将其应用于 .阻止内容?
  • 父子模板中的块名应该相同。因此子模板可以知道要填充父级的哪一部分。

标签: html django django-templates


【解决方案1】:

就像 goliney 提到的... 你需要在你的 base.html 文件中有一个部分有

{% block content %}
{% endblock %}

然后您可以在扩展 base.html 模板的其他模板中覆盖它。

目前在你的子模板中你可以做一个

{% block primary %}
whatever you want here and this would show up where you marked on the base.html template
{% endblock %}

也不确定您是否只是在整理一个简单的示例。您将需要创建

<form action="" method="post">{% csrf_token %} 
for loop here
</form>

【讨论】:

    猜你喜欢
    • 2019-05-15
    • 2017-09-04
    • 1970-01-01
    • 2019-11-22
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    相关资源
    最近更新 更多