テンプレートで作成するdjangoのテンプレートタグまたは回避策はありast.literal_eval(some_str)
ますか?
これを行うには、新しいテンプレート タグを作成する必要がありますか? この場合、そのテンプレート タグはどのようになりますか?
テンプレートで作成するdjangoのテンプレートタグまたは回避策はありast.literal_eval(some_str)
ますか?
これを行うには、新しいテンプレート タグを作成する必要がありますか? この場合、そのテンプレート タグはどのようになりますか?
いいえ
なぜそのような特定のタグがあり、なぜそれが使用されるのでしょうか?
簡単に追加できます
# 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 dictをデシリアライズしたい」と言いました。その場合、テンプレートはそれを行う場所ではなく、最初にテキストをdictに変換してからテンプレートに渡します。
dictを保存することはrepr
シリアライズする方法でliteral_eval
はなく、使用することはdictをデシリアライズする方法ではなく、json.dumps
dictをデータベースに入れjson.loads
、それをdictに戻すために使用するようなフォーマットを使用する方法ではありません。ピクルスも使用できますが、お勧めしません。