django 中template 怎么使用model自定义的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django 中template 怎么使用model自定义的方法相关的知识,希望对你有一定的参考价值。
参考技术A如果参数只涉及model自身的属性值, 在模版中可以直接调用,注意,不能加括号entry.def_name;或者使用property(方法名)函数,将方法的结果变为属性;new_value = property(_def_name), 使用: entry.new_value
如果参数涉及其他变量,建议使用自定义模版过滤器(自己搜);
如果还不能满足,建议更换模版模块.
以上基于python2.7 django1.11.18
如何在脚本中使用 django-template 而不是 jinja2?
【中文标题】如何在脚本中使用 django-template 而不是 jinja2?【英文标题】:How to use django-template in a script instead of jinja2? 【发布时间】:2012-02-12 06:48:51 【问题描述】:我正在为 Django 编写一个管理命令,并创建了模板文件,我解析这些文件以创建新文件。
到目前为止,我使用的是 Jinja2,但由于它是一个 Django 管理命令,我想切换到基于 django 的模板。
你知道如何在 django 管理命令文件中设置模板环境吗?
我正在寻找的是相当于这个 jinja2 代码:
env = Environment(loader=PackageLoader('modulo.bin', 'templates/plugin_templates'))
编辑:好的,在管理命令中它会起作用。但是如果我想在普通的 python 脚本中使用 django-template 怎么办?
谢谢,
雷米
【问题讨论】:
【参考方案1】:您无需设置任何环境。你在一个 Django 命令中,你可以使用 Django 模板。
【讨论】:
好的,但在这种情况下,我的模板需要位于我的项目模板目录中。我想为与项目模板目录分开的命令创建一个特定的模板目录。但是在这里,我只需要在 INSTALLED_APP 中添加我的 bin 应用程序,它就可以工作了。谢谢。【参考方案2】:Django 管理命令可以访问所有 django 环境变量,就像您通常在视图中一样。
要加载模板,为其分配一些上下文,然后保存结果:
from django.template.loader import render_to_string
c = 'var':'value','var2':'value2' # values you want to send to the template
content = render_to_string('template.html',c) # rendered template
这遵循正常的 django 模板规则,所以 template.html
应该是可加载的(换句话说,它应该在 django 查找模板的“正常”位置;或者在 TEMPLATE_DIRS
中列出的目录中)。
【讨论】:
以上是关于django 中template 怎么使用model自定义的方法的主要内容,如果未能解决你的问题,请参考以下文章