Django站点的白色标签的常见做法是什么?

Django站点的白色标签的常见做法是什么?,django,python-2.7,django-templates,django-urls,white-labelling,Django,Python 2.7,Django Templates,Django Urls,White Labelling,我有一个web应用程序,我想允许我们的客户使用白色标签。我在PHP/ZendFramework中完成了这项工作,键入主机名(),从数据库中提取logo/colors/other,并使用这些设置呈现主布局 我是Python/Django1.5新手,想知道是否有人在他们的应用程序中实现了白标签功能。你是怎么做到的?有共同的做法吗 我在谷歌上搜索了一下,发现一个老博客使用url前缀实现了一个白标签功能,但我仍然在呈现布局时遇到了一些问题 任何帮助都会很好!谢谢我没有找到一个很好的答案,所以我只实施了

我有一个web应用程序,我想允许我们的客户使用白色标签。我在PHP/ZendFramework中完成了这项工作,键入主机名(),从数据库中提取logo/colors/other,并使用这些设置呈现主布局

我是Python/Django1.5新手,想知道是否有人在他们的应用程序中实现了白标签功能。你是怎么做到的?有共同的做法吗

我在谷歌上搜索了一下,发现一个老博客使用url前缀实现了一个白标签功能,但我仍然在呈现布局时遇到了一些问题


任何帮助都会很好!谢谢

我没有找到一个很好的答案,所以我只实施了我自己的解决方案

我所做的是创建了一个如下所示的
白标签
模型:

class Whitelabel(models.Model):
    name = models.CharField(max_length=255, null=False)
    logo = models.CharField(max_length=255, null=True, blank=True)
    primary_domain = models.CharField(max_length=256, null=False) 
然后,我在
application\u name/context\u processors.py
中创建了一个上下文处理器,用于检查当前主机域,并查看它是否匹配任何记录
primary\u domain
字段。如果存在匹配项,则返回
name
logo
的值,并将其分配给参数
SITE\u name
SITE\u logo
。如果未找到匹配项,请为
站点名称
站点徽标
分配定义值,这可能是您的默认应用程序名称

def whitelabel_processor(request):
    current_domain = request.get_host() 
    whitelabel = Whitelabel.objects.filter(primary_domain=current_domain).order_by('id')

    if whitelabel.count() != 0:
        config = {
            'SITE_NAME': whitelabel[0].name, 
            'SITE_LOGO': whitelabel[0].logo, 
            'SITE_DOMAIN': whitelabel[0].primary_domain
            }
    else:
        config = {
            'SITE_NAME': 'MY SITE', 
            'SITE_LOGO': '/static/images/logo.png', 
            'SITE_DOMAIN': 'http://%s' % Site.objects.get_current().domain
            }

    return config
然后,我将上下文处理器添加到我的设置文件中的
TEMPLATE\u context\u PROCESSORS

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    ...
    "context_processors.whitelabel_processor",
)

这样我就可以在
base.html
模板中这样调用它们

<body>
    <h1>{{SITE_NAME}}</h1>
    <img src="{{SITE_LOGO}}" />
</body>

{{SITE_NAME}}
下面是关于模板上下文处理器的更多文档。

基本上我也在做同样的事情。你有没有想过?如果是这样的话,你能把你的解决方案作为答案发布吗?我已经提交了我的答案,希望它对你有帮助。谢谢你的回答。我真的很感激,它证实了我所想的一些事情。如果有更好的方法,我希望有人能把它贴出来,等等。但是,现在,我想我会采用你的解决方案再次感谢。没问题,我希望一切顺利!