【发布时间】:2020-04-06 01:38:25
【问题描述】:
我正在做关于 realpython https://realpython.com/get-started-with-django-1/ 的 django 教程
在其中一个模板中,他们添加了{% load static %} 以加载应用程序的静态文件。在同一个模板中,他们还加载了类似<img class="card-img-top" src="{% static project.image %}"> 的图像。这里的static 关键字告诉django 在static folder 中查找project.image 中定义的文件名。当我删除 {% load static %} 时,图像仍然显示。那么,如果没有它可以完美渲染图像,我为什么需要这部分呢?代码如下:
{% extends "base.html" %}
<!--{% load static %}-->
{% block page_content %}
<h1>Projects</h1>
<div class="row">
{% for project in projects %}
<div class="col-md-4">
<div class="card mb-2">
<img class="card-img-top" src="{% static project.image %}">
<div class="card-body">
<h5 class="card-title">{{ project.title }}</h5>
<p class="card-text">{{ project.description }}</p>
<a href="{% url 'project_detail' project.pk %}" class="btn btn-primary">Read more</a>
</div>
</div>
</div>
{% endfor %}
</div>
{% endblock %}
【问题讨论】:
-
通过将其包装在 您实际上并没有删除
{% load %}指令。删除该行,您应该会收到一条错误消息,告诉您模板标签{% static %}未定义。{% load static %}告诉 django 加载在文件static.py中定义的一组模板标签/过滤器(在您项目的任何应用程序中的文件夹templatetags中)。同样的方式你可以定义你自己的标签,把它们放在一个文件util_tags.py,然后用{% load util_tags %}加载它们。
标签: django django-templates django-static