有没有办法从任意模板访问ADMINS
模块的settings
变量,而无需在渲染之前手动将其添加到上下文中,类似于request
的方式如果RequestContext
位于django.core.context_processors.request
?
TEMPLATE_CONTEXT_PROCESSORS
在任何模板中使用
答案 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 %}