0
django中是否有模板标签或解决方法在模板中制作ast.literal_eval(some_str)
?django中有没有模板标签可以制作ast.literal_eval?
shoud我创建一个新的模板标签来做到这一点?在这种情况下,该模板标签将如何?
为什么我问可以在这里how to deserialize a python printed dictionary?
django中是否有模板标签或解决方法在模板中制作ast.literal_eval(some_str)
?django中有没有模板标签可以制作ast.literal_eval?
shoud我创建一个新的模板标签来做到这一点?在这种情况下,该模板标签将如何?
为什么我问可以在这里how to deserialize a python printed dictionary?
没有
找到为什么会有这样一个特定的标记,以及为什么它会被使用的原因是什么?
您可以添加一个轻松
# file: literal_eval.py
import ast
def literal_eval(value):
return ast.literal_eval(value)
from django import template
register = template.Library()
register.filter('literal_eval', literal_eval)
,您可以在模板
{% load literal_eval %}
{{ some_str|literal_eval }}
现在导致问题使用这样的“为什么?”你会用这个做什么?
编辑:OP表示“他想反序列化一些保存为varchar的python字典”,在这种情况下,模板不是执行它的地方,首先将文本转换为字典,然后将其传递给模板。
,更好地重新思考正在做什么,节约字典repr
不是序列化的方式,并使用literal_eval
不是反序列类型的字典,使用json.dumps
或这样的格式把词典到数据库,并使用json.loads
转换的方式它回到字典。你也可以使用泡菜,但我不会推荐它。
问你的问题在我的问题 – jperelli
对不起,我说了一些愚蠢的:)这是原因:http://stackoverflow.com/questions/13165479/how-to-deserialize-a-python-printed-dictionary – jperelli
@ jperelli你不正确的做法,你不应该这样做在模板 –