gpt4 book ai didi

python - Django 模板开发与生产

转载 作者:太空宇宙 更新时间:2023-11-03 14:23:51 25 4
gpt4 key购买 nike

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

我想要完成的是在我的 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 %}

有什么帮助吗?

最佳答案

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

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

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

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 设置。

关于python - Django 模板开发与生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23380610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com