我从使用Django的人那里继承了一个产品,我完全不知道如何使用它。
我想要完成的是在我的scripts文件中提供不同的base.html,如下所示:
<!-- if development -->
<script src="{% static "js/main.js" %}></script>
<! -- end -->
<!-- if production -->
<script src="{% static "production/js/main.min.js" %}></script>
<! -- end -->文件结构如下:
app_name
|__ pages
|__ settings
|__ static
|__ templates
|__ etc在settings文件夹中,看起来有3个文件:
base.py : shared settings
development.py
production.py在development.py内部,
from app_name.settings.base import *
DEBUG = True
TEMPLATE_DEBUG = DEBUG
// etc我试着在templates/base.html中做下面这样的事情,但显然没有那么容易。
{% if DEBUG %}
STUFF
{% endif %}有什么帮助吗?
发布于 2014-04-30 06:01:32
您需要将设置中的调试发送到模板。
正确的方法是使用处理器,它用变量填充模板呈现的上下文。
对于您的特定示例,解决该问题的一种方法是在您的context_processors.py中定义一个新的模块app_name,并在其上写入。
from django.core.urlresolvers import resolve
from settings import DEBUG
def debug_settings(request):
return {'DEBUG': DEBUG}在settings.py中,使用
TEMPLATE_CONTEXT_PROCESSORS = ("django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages",
"django.core.context_processors.request",
"app_name.context_processors.debug_settings",)这将使所有模板查看您的DEBUG设置。
发布于 2014-04-30 05:59:56
https://stackoverflow.com/questions/23380610
复制相似问题