首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django模板开发与生产

Django模板开发与生产
EN

Stack Overflow用户
提问于 2014-04-30 05:52:30
回答 2查看 851关注 0票数 5

我从使用Django的人那里继承了一个产品,我完全不知道如何使用它。

我想要完成的是在我的scripts文件中提供不同的base.html,如下所示:

代码语言:javascript
复制
<!-- if development -->
<script src="{% static "js/main.js" %}></script>
<! -- end -->

<!-- if production -->
<script src="{% static "production/js/main.min.js" %}></script>
<! -- end -->

文件结构如下:

代码语言:javascript
复制
app_name
|__ pages
|__ settings
|__ static
|__ templates
|__ etc

settings文件夹中,看起来有3个文件:

代码语言:javascript
复制
base.py : shared settings
development.py
production.py

development.py内部,

代码语言:javascript
复制
from app_name.settings.base import *

DEBUG = True
TEMPLATE_DEBUG = DEBUG

// etc

我试着在templates/base.html中做下面这样的事情,但显然没有那么容易。

代码语言:javascript
复制
{% if DEBUG %}
STUFF
{% endif %}

有什么帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-30 06:01:32

您需要将设置中的调试发送到模板。

正确的方法是使用处理器,它用变量填充模板呈现的上下文。

对于您的特定示例,解决该问题的一种方法是在您的context_processors.py中定义一个新的模块app_name,并在其上写入。

代码语言:javascript
复制
from django.core.urlresolvers import resolve
from settings import DEBUG

def debug_settings(request):
    return {'DEBUG': DEBUG}

在settings.py中,使用

代码语言:javascript
复制
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设置。

票数 3
EN

Stack Overflow用户

发布于 2014-04-30 05:59:56

您需要使用内置的调试上下文处理器。不要忘记设置INTERNAL_IPS设置(例如,设置为('127.0.0.1‘)。之后:

代码语言:javascript
复制
{% if debug %}
STUFF
{% endif %}

应该行得通。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23380610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档