是否可以将电子邮件作为字典密钥传递给Django模板。
这是可能的
views.py
bad_dict = {'b@b.com': 1, 'c@c.com' :2 }
new_dict = { 'one' : 10, 'two' : 20 }
if request.method == "GET":
return render(request, 'a.html',
{'bad_dict': bad_dict,
'new_dict':new_dict})
html
aa{{ bad_dict.b@b.com }}bb
aa{{ new_dict.one }}bb
如果您使用aa{{ new_dict.one }}bb
,它将运行完美,并且您会得到aa10bb。
但是,如果使用aa{{ bad_dict.b@b.com }}bb
,则会出现此错误:
Could not parse the remainder: '@b.com' from 'bad_dict.b@b.com'
总有办法解决这个问题吗?我以为可以删除'@'和'。',但这似乎很粗糙。也许有更好的方法?
答案 0 :(得分:3)
您可以为此写cutom template filter:
save_summary_steps
在模板中它将如下所示:
from django import template
register = template.Library()
@register.filter
def get_by_email(value, arg):
return value.get(arg)