跳转到主要内容

根据用户/客户的需要自定义主题(CSS和模板)

项目描述

https://travis-ci.org/novafloss/django-pimpmytheme.png?branch=master

为每个客户端/用户/什么的Django模板和静态主题。

原因

当您需要根据应用程序中的模型(网站、用户等)使用自定义模板和/或样式时。

pimpmytheme将为每个“客户端”(客户端可以是用户、网站或实现get_current方法(见下文)的一切)创建一个文件夹。它也可以同时用于多个项目。这些文件夹位于pimpmytheme目录下以项目名称命名的文件夹中。然后,您的设计师可以拉取/推送此存储库以编辑同一存储库中所有项目的整体外观和感觉!

如何

借助自定义模板加载器和静态文件加载器,pimpmytheme将在当前对象存在自定义模板和静态文件时加载它们。

安装

$ pip install django-pimpmytheme

配置

将pimpmytheme添加到您的INSTALLED_APPS

INSTALLED_APPS = (
    'pimpmytheme',
    ...
)

将pimpmytheme staticfiles_finder添加到您的STATICFILES_FINDERS

STATICFILES_FINDERS = (
    "pimpmytheme.static_finder.CustomFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder",
)

将自定义模板加载器添加到您的TEMPLATE_LOADERS

TEMPLATE_LOADERS = (
    'pimpmytheme.template_loader.Loader',
    'django.template.loaders.app_directories.Loader',
)

最后,您需要一个具有“get_current”方法的对象。get_current将返回负责定制的对象。例如,您可以使用django.contrib.sites.Site模型按网站定制项目

CUSTOM_THEME_LOOKUP_OBJECT = "django.contrib.sites.models.Site"
CUSTOM_THEME_LOOKUP_ATTR = "name"

然后选择您要存储自定义的目录路径。它必须是绝对路径。

PIMPMYTHEME_FOLDER = "/home/user/myproject/custom_statics"

您可以在这里停止配置,它将正常工作,并且您的静态文件将使用collectstatic命令收集到STATIC_ROOT中。

如果您想进一步配置,您可以设置collectstatic命令将资产复制到的目录名称。它将是django_settings.STATIC_ROOT的子目录

PIMPMYTHEME_FOLDER_NAME = 'pimp_theme'

然后告诉压缩器使用pimpmytheme的过滤器来构建对您的资产的链接

STATICFILES_FINDERS = (
    "yourapp.your_finder.PrefixedFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder",
)

COMPRESS_CSS_FILTERS = ['pimpmytheme.filters.PrefixedCssAbsoluteFilter']

命令

要创建用于定制的所需文件夹,您可以运行pimpmytheme提供的管理命令

$ python manage.py create_folders

在custom_form内部,您将获得一个名为您项目名称的文件夹。在该文件夹内部,您将获得与您定制的模型对象数量一样多的文件夹。如果您使用网站,您将获得example.com文件夹。

您还会找到一个包含空自定义.less文件的静态文件夹。这里为了您的方便,您可以开始编辑此文件以定制您的样式。

您还可以在静态文件夹旁边创建一个模板文件夹,并在其中放置一些自定义模板。

pimpmytheme模板加载器将首先在此目录中查找模板文件。如果找不到,它将回退到Django模板加载器

如果您的主题在git存储库中,请添加设置

PIMPMYTHEME_GIT_REPOSITORY = 'git@github.com:foo/your_pimp_folders.git'

并运行有用的命令将它们拉入PIMPMYTHEME_FOLDER

$ python manage.py update_themefolder_from_git

模板标签系统

使用django-pimpmytheme,您获得一个模板标签系统来管理自定义媒体(CSS、JS和图像)。

此模板系统确保为当前定制存在自定义媒体。因此,您可以为每个客户端获取大量的CSS/JS/图像,而django-pimpmytheme将只加载与当前定制相关的媒体。

然后您可以在这些文件上使用资产管理、压缩器等。

要使用模板标签,首先在模板上加载它

{% load pimptheme %}

然后使用pimp_css、pimp_js或pimp_img来加载您的资产

<img src="{% pimp 'myimage.jpg'%}" alt="Hello" style="opacity:0.8;">
{% pimp_css 'custom.css'%}
{% pimp_js 'javascript.js'%}
{% pimp_img 'myimage.jpg'%}

注意

感谢@leotrouvtou帮助找到项目名称。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

django-pimpmytheme-2.6.tar.gz (605.7 kB 查看哈希值)

上传时间 源代码

由以下支持