2011-06-07 45 views
0

我正在构建将为多个站点部署的通用模板,我们希望允许的其中一个自定义选项是标题文本的自定义字体。我想将此属性添加到管理界面。 是否有更好的技术,然后为这些属性创建模型并执行Model.objects.get()来检索1个实例。Django管理中的独特属性

在此先感谢

回答

0

我目前从github 实现Django的大块它允许使用的

{% 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> 
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的字典。

+0

有趣的做法,我现在就打开线索看看其他意见。 – Valchris 2011-06-08 16:59:50