我的上下文中有一个名为THEME
的变量。根据它的值,django应该从一个或另一个文件夹加载CSS文件。
这就是我如何定义我的上下文处理器以从设置文件中读取变量THEME
:
from django.conf import settings
def theme(request):
return {'theme': getattr(settings, "THEME", None)}
我试图像这样动态构建css路径:
{% with 'myapp/css/'|add:THEME|add:'.custom_theme.css' as image_static %}
{% static image_static %}
{% endwith %}
但是,我收到此错误:
VariableDoesNotExist at /foo/bar/
Failed lookup for key [THEME] in u"[{'False': False, 'None': None, 'True': True}, {}, {}, ...
我尝试另一种方式:
{% with 'myapp/css/'|add:request.THEME|add:'.custom_theme.css' as image_static %}
{% static image_static %}
{% endwith %}
我收到了这个错误:
VariableDoesNotExist at /foo/bar/
Failed lookup for key [THEME] in u"<WSGIRequest: GET '/foo/bar/'>"
有关如何基于我的上下文变量的值动态构建CSS的加载静态路径的任何想法&#34; THEME&#34;?
答案 0 :(得分:1)
你设置了上下文变量&#34; theme&#34; (小写):
def theme(request):
return {'theme': getattr(settings, "THEME", None)}
但是你正在寻找变量&#34;主题&#34; (大写):
Failed lookup for key [THEME]
正如丹尼尔所建议的那样(即将做同样的事情):改为编写自己的模板标签。应该采取大约两三行...