我正在构建一个将为多个站点部署的通用模板,我们想要允许的其中一个自定义选项是标题文本的自定义字体。我想将此属性添加到管理界面。 是否有更好的技术,然后为这些属性创建模型,并执行Model.objects.get()来检索1个实例。
提前致谢
答案 0 :(得分:0)
我建议使用上下文处理器,只在第一次请求时点击数据库,或者强行触发重新加载设置。例如:
from project.theme.models import Theme
THEME_SETTINGS = Theme.objects.values().get(id=1) # hits db first request
def theme(request):
if 'reset_theme' in request.GET: # or some other mechanism
THEME_SETTINGS = Theme.objects.values().get(id=1) # reset theme settings
return THEME_SETTINGS
要使用,只需在您的设置中将上下文处理器添加到TEMPLATE_CONTEXT_PROCESSORS
即可。上下文处理器非常简单,它们使用RequestContext
并返回用于填充RequestContext
的字典。
答案 1 :(得分:0)
我目前已经从github实施了django-chunks 它允许使用
{% load chunks %}
{% chunk "key" %}
其中块是键,值设置。
我用这种技术插入“动态css”,(我的管理员可以提供上传自定义字体所需的CSS)
示例:强> subtitle_font_css
<style>
@font-face {
font-family: "impact";
src: url('/static/fonts/impact.ttf');
}
</style>
subtitle_font
font-family: impact;
现在为html:
<head>
{% load chunks %}
{% chunk "subtitle_font_css" %}
</head>
<body>
{% load chunks %}
<span style="{% chunk "subtitle_font %}"> Title </span>
</body>