我正在使用Google App Engine和Django模板。
我有一个想要显示对象的表格,如下所示:
Object Result:
Items = [item1,item2]
Users = [{name='username',item1=3,item2=4},..]
Django模板是:
<table>
<tr align="center">
<th>user</th>
{% for item in result.items %}
<th>{{item}}</th>
{% endfor %}
</tr>
{% for user in result.users %}
<tr align="center">
<td>{{user.name}}</td>
{% for item in result.items %}
<td>{{ user.item }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
现在Django文档指出当它看到一个。在变量中
它尝试几种方法来获取数据,其中之一是字典查找,这正是我想要的,但似乎没有发生…
我找到了一种在内部获取变量的“更好”的解决方案,虽然不是最好的方法,但是它可以工作。
你将自定义过滤器安装到Django中,该过滤器将dict的键作为参数
为了使其能够在Google App Engine中工作,你需要向主目录中添加一个文件,我称其为django_hack.py,其中包含以下这段代码
from google.appengine.ext import webapp
register = webapp.template.create_template_register()
def hash(h,key):
if key in h:
return h[key]
else:
return None
register.filter(hash)
现在我们有了这个文件,我们需要做的就是告诉应用程序引擎使用它…我们通过在主文件中添加这一行来做到这一点
webapp.template.register_template_library('django_hack')
并在模板视图中添加此模板,而不是通常的代码
{{ user|hash:item }}
问题内容: 当我使用Django模板渲染器渲染页面时,可以传入包含各种值的字典变量,以使用来在页面中对其进行操作。 有没有办法在Javascript中访问相同的变量(也许使用DOM,我不知道Django如何使变量可访问)?我希望能够基于传入的变量中包含的值使用AJAX查找来查找详细信息。 问题答案: 将直接替换为HTML。查看资料;它不是“变量”或类似的变量。它只是渲染的文本。 话虽如此,你可以将
问题内容: 当我使用Django模板渲染器渲染页面时,可以传入包含各种值的字典变量,以使用来在页面中对其进行操作。 有没有办法在Javascript中访问相同的变量(也许使用DOM,我不知道Django如何使变量可访问)?我希望能够基于传入的变量中包含的值使用AJAX查找来查找详细信息。 问题答案: 将直接替换为HTML。查看资料;它不是“变量”或类似的变量。它只是渲染的文本。 话虽如此,你可以将
问题内容: 它能够写,甚至。 但是,我找不到要添加值* -1之类的内容。不幸的是,这行不通。 问题答案: 你可以轻松地制作自己的模板标签:
上一节中,我们简单介绍了模板相关的概念,并手动实践了 python 中的两个流行的模板库 Mako 和 Jinja2。接下来,我们将深入了解如何在 Django 中使用模板系统。 1. Django 中的模板系统 Django 中自带了一个模板系统,叫做 Django Template Language (DTL),通过该引擎,我们可以方便的加载模板文件到内存中进行编译并动态插入数据,最后返回转换
template.defaults.imports 模板通过 $imports 可以访问到模板外部的全局变量与导入的变量。 导入变量 template.defaults.imports.log = console.log; <% $imports.log('hello world') %> 内置变量清单 $data 传入模板的数据 $imports 外部导入的变量以及全局变量 print 字符
问题内容: 这是一个相当基本的问题(我是Django的新手),但是在模板的视图中使用变量集时遇到了麻烦。如果我在视图内初始化字符串或列表(即h =“ hello”),然后尝试在模板内调用它: 既没有输出也没有错误。同样,如果我尝试在模板中使用不存在的变量: 再次没有错误报告。这正常吗?以及如何在模板中使用变量。谢谢! 问题答案: 为了能够访问模板中的变量,它必须位于用于渲染该模板的上下文中。我的猜