编码对象的Django模板变量查找
Django template variable lookup of encoded object
当我用查询我的编码对象时
{{ map_settings }}
我得到这样的编码对象:
{ "geometry": { "type": "Point", "coordinates": [ 50, 4 ] }, "type": "Feature", "properties": { ...
但是,我只需要访问元素"geometry"(在客户端代码中打印整个对象会太大)。
{{map_settings.geometry}}和{{map_settings|safe.geometry}}都不起作用。
有人知道如何只打印这个编码对象的几何元素吗?
***编辑
views.py:中的片段
map_settings['properties'].update(properties)
context['map_settings'] = simplejson.dumps(map_settings, indent=settings.DEBUG)
链接到完整视图.py(Github)
这是一个有点棘手的解决方案,但如果(出于某种原因)您无法更改视图以返回对象而不是json格式的字符串。您可以使用templatetag将其从json字符串转换回对象。
如何创建自定义模板标签。
对于此任务,我们将使用分配标签
同样,简单的标签也可以做到这一点。
因此,在您的应用程序中创建templatetags
目录,该目录必须具有__init__.py
。
在该目录中创建例如json_to_obj.py
。现在json_to_obj.py
的内容可能看起来像这样。
import json
from django import template
register = template.Library()
@register.assignment_tag
def json_to_obj(json_str):
return json.loads(json_str)
要在模板中使用json_to_obj
模板标签:
{% load json_to_obj %}
{# on the top of your template load the templatetag library #}
...
{% json_to_obj map_settings as map_settings_obj %}
<p>{{ map_settings_obj.geometry }}</p>
相关文章:
- Javascript 变量使用 jquery 查找变量
- "可以't查找变量:cordova”;
- "可以't查找变量:window“;在suds.js中
- ReferenceError:Can't查找变量:functionName
- MongoDB MonkAPI根据数据库请求之外可用的查找结果设置变量
- 在 for 循环中查找变量的迭代总和
- 如果字符串保存在变量中,如何查找包含字符串的ID
- 敲除嵌套数组分页,如何跟踪变量或查找父记录
- 按名称查找变量
- ReferenceError:Can't在AngularJS中查找变量:xxxService,Karma
- JQuery可以't从单独的javascript文件中查找变量
- 查找任何未定义的变量并从url字符串中隐藏
- 代码在shell中运行,但提供'可以't查找变量'从文件运行时出错
- 在(跨浏览器)JavaScript 中,何时必须在局部范围内缓存变量查找
- Javascript:作用域链/变量查找性能
- 查找“包含”中的多个值变量
- 如何使用变量查找和更改对象属性
- 编码对象的Django模板变量查找
- 如何使用主JSON中的变量查找第二个JSON数据集-使用Handlebars
- 使用两个变量查找数组值