从Django模板获取管理员电子邮件

时间:2013-11-21 17:08:07

标签: python django django-templates django-views

有没有办法从任意模板访问ADMINS模块的settings变量,而无需在渲染之前手动将其添加到上下文中,类似于request的方式如果RequestContext位于django.core.context_processors.request

,则可以使用TEMPLATE_CONTEXT_PROCESSORS在任何模板中使用

2 个答案:

答案 0 :(得分:4)

您可以编写自己的上下文处理器(这是一个以request为参数的常规函数​​):

from django.conf import settings

def admin_emails(request):
    return { 'ADMINS': settings.ADMINS }

并将path.to.my.context_processor.admin_emails添加到TEMPLATE_CONTEXT_PROCESSORS

答案 1 :(得分:2)

我会使用像此问题所讨论的模板标记: Can I access constants in settings.py from templates in Django?

具体来说,我使用了这个答案中的代码:https://stackoverflow.com/a/6343321/2250326

有了这个,你可以在你的模板中获得AMDINS:

{% value_from_settings "ADMINS" as admins %}
{% for admin in admins %}
    Name: {{ admin.0 }}<br />
    Email: {{ admin.1 }}
{% endfor %}