django在模板中设置全局变量

时间:2017-08-15 18:33:31

标签: html django templates variables

我正在使用需要在每个页面上更改的横幅图片,我想在html模板中设置横幅,这样我正在构建它的人很容易轻松添加新页面。

我在django开发它,但我无法弄清楚如何让它工作,请帮忙!

示例:

的index.html

set image url here
{% extends 'base.html' %}

base.html

<html>
  <body>
    {% include 'top.html %}
  </body>
</html>

的top.html

<div>
  <img src="{{ image url }}">
</div>

2 个答案:

答案 0 :(得分:0)

我很不理解,但是如果你删除top.html并将其包含在基础中,那么应该会更好:

<html>
  <body>
    <div>
      <img src="{% block url_img %}{% enblock %}">
    </div>
  </body>
</html>

并在索引中

{% extends 'base.html' %}
{% block url_img %}here images url{% endblock %}

如果您将top.html用于其他目的,请执行相同的操作:

{% extends 'base.html' %}
{% block url_img %}{{ image url }}{% endblock %}

答案 1 :(得分:0)

Django模板语言不允许您设置变量。你可以通过使用块来实现类似的东西。将基本模板更改为:

base.html文件

Faulting application name: MicrosoftEdgeCP.exe, version: 11.0.15063.483, time stamp: 0x595f2577
Faulting module name: RPCRT4.dll, version: 10.0.15063.0, time stamp: 0xcf94c546
Exception code: 0xc00000fd
Fault offset: 0x000000000001539b
Faulting process id: 0x176c
Faulting application start time: 0x01d315f28d6ef0f7
Faulting application path: C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\MicrosoftEdgeCP.exe
Faulting module path: C:\WINDOWS\System32\RPCRT4.dll
Report Id: b6162eec-9330-4481-a33c-b6d4411d9a43
Faulting package full name: Microsoft.MicrosoftEdge_40.15063.0.0_neutral__8wekyb3d8bbwe
Faulting package-relative application ID: ContentProcess

然后覆盖模板中的<html> <body> <div> <img src="{% block image_url %}/default_image.jpg{% endblock %}"> </div> </body> </html> 块,例如

的index.html

image_url

请注意,使用此方法无法使用{% extends 'base.html' %} {% block image_url %}/images/index.jpg{% endblock %} ,因为您无法覆盖{% include top.html %}标记所包含的块。