根据每个用户/客户机定制主题(css和模板)
django-pimpmytheme的Python项目详细描述
每个客户端/用户/任何django模板和静态主题。
为什么
当需要使用基于模型的自定义模板和/或样式时 在你的应用程序中(网站、用户等)。
PimpMyTheme将为每个“客户机”创建一个文件夹(客户机可以是 用户、站点或实现get-current方法的所有内容(请参见 下面)。它还可以用于同一时间的多个项目 时间。这些文件夹位于 pimpmytheme目录。你的设计师可以拉/推这个 用于编辑所有项目在 同一个存储库!
如何
在自定义模板加载程序和静态文件加载程序的帮助下, pimMyType加载自定义模板和静态文件,如果它们存在 对于当前对象。
安装
$ pip install django-pimpmytheme
配置
在您的INSTALLED_APPS:
中添加pimpythemeINSTALLED_APPS=('pimpmytheme',...)
将pimpytheme staticfiles\u 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”方法的模型。获取当前信息 将返回负责自定义的对象。例如,你 可以使用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命令在静态根目录中收集。
如果要进一步配置,可以设置 collectStatic将在其中复制资产的目录名 命令。它将是django_settings的子文件夹。static_root:
PIMPMYTHEME_FOLDER_NAME='pimp_theme'
然后告诉compressor使用pimpmytheme的过滤器来建立到您的资产的链接:
STATICFILES_FINDERS=("yourapp.your_finder.PrefixedFinder","django.contrib.staticfiles.finders.AppDirectoriesFinder",)COMPRESS_CSS_FILTERS=['pimpmytheme.filters.PrefixedCssAbsoluteFilter']
命令
要创建自定义所需的文件夹,可以运行 pimpmytheme提供的管理命令:
$ python manage.py create_folders
在自定义表单中,您将获得一个名为项目的文件夹 名字。在这个文件夹里你会得到和你一样多的文件夹 自定义模型对象。如果你使用这个网站,你会得到一个 example.com文件夹。
您还将找到一个静态文件夹,其中包含一个空的custom.less文件。 为了你的方便。您可以开始编辑此文件以自定义 你的风格。
您还可以在静态文件夹旁边创建一个模板文件夹,并将 其中有些自定义模板。
pimpmytheme模板加载程序将首先在此目录中查找 加载模板文件。如果找不到它,它会落在Django上 模板加载程序
如果您的主题位于git repo中,请添加设置:
PIMPMYTHEME_GIT_REPOSITORY='git@github.com:foo/your_pimp_folders.git'
并运行有用的命令将它们拉入pimpmytheme_文件夹:
$ python manage.py update_themefolder_from_git
模板标记系统
使用django pimpmytheme,您可以获得一个模板标记系统来管理自定义 媒体(css、js和图片)。
此模板系统确保当前媒体存在自定义媒体 定制。你可以得到一堆css/js/img 客户端和django pimpmytheme将只为 当前的自定义项。
然后可以使用资产管理、压缩器等 文件夹。
要使用templateTags,请首先将其加载到模板上:
{%loadpimptheme%}
然后使用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帮助查找项目名称。