【发布时间】:2020-09-14 12:38:04
【问题描述】:
我是 Django 新手,因此对它没有全面的了解。所以我在 Django 中遇到了一些错误。
目前我正在尝试从 Django 模板 html 文件中打印变量的类型,如下所示:
<center><h2>The type of feature list report for version {%type(version)%} is<h2></center>
对于上述情况,我收到以下错误:
Invalid block tag on line 9: 'type(version)'. Did you forget to register or load this tag?
那么这里出了什么问题?我们如何从 html 模板文件中使用与 python 相关的 api(如 type()、strip()、get() 等)?我认为在 {% .... %} 我们可以使用与 python 相关的评估。我对吗?
请给这点点灯。
【问题讨论】:
-
首先,您必须将值传递给您正在处理的 django 模板,就像作为上下文数据一样。那么只有你才能获得价值。你不能在这里做更多的操作。 Django 模板仅用于查看或渲染,因此只需传递它并显示它不要在这里做更多操作。这样做是个好习惯。
-
我已经将值传递给 django 模板。那么传完值后,我们就不能再对它做任何操作了吗?
-
要么切换到 jinja2 并将类型声明为安全函数,要么不要尝试在模板中编程(这是 Django 模板语言的理念)。
-
这不是一个好方法@RDX 通常,只需确保您的视图将正确的数据传递给您的模板,您不需要做太多工作来确保它以 html 形式出现,只需例如,如果你想在 python 中尝试值的长度,你可以使用 len(your_data) 但这里的一个小改动是获取字符串的长度,如 {{obj.data1 |长度}}。这里 len() 的大括号不起作用。做出明智的选择。我的建议是从您的观点出发。
标签: html django django-forms django-templates