Djagno:如何将电子邮件作为字典中的键传递给模板

时间:2018-07-08 03:28:12

标签: django django-templates

是否可以将电子邮件作为字典密钥传递给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'

总有办法解决这个问题吗?我以为可以删除'@'和'。',但这似乎很粗糙。也许有更好的方法?

1 个答案:

答案 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)