动态切换django项目的settings.side\u id
django-agilesites的Python项目详细描述
Django Agile站点(Django_Agilesites)
这为django提供了动态切换settings.side\u id的能力。 然后,您可以通过引用settings.site_文件夹,根据站点ID更改模板路径。
其工作方式首先是根据 request.get_host()(部分基于request.meta['http_host'])。一旦站点ID 建立,然后使用它动态查找任何模板路径文件夹结构 定义。
示例/设置
假设我们希望所有流量都转到//beta.foo.com以使用我们的新模板树
为新模板app_detail.html
调用“beta”。此应用程序将允许您放置
要实现此目的,请在应用程序中使用以下模板文件夹结构:
app/
templates/
app/
app_detail.html
app_list.html
beta/
app_detail.html
我们需要引用这两个网站的问题-所以在网站应用程序假设如下。 站点ID:1域:foo.com 站点ID:2域:beta.foo.com
现在要使其工作,您需要执行以下操作:
将
django_agilesites
添加到设置中。已安装的应用程序添加
django_agilesites.loaders.AgileSiteAppDirectoriesFinder
到settings.template\u加载程序。我把它放在第一个。将
django_agilesites.middleware.AgileSitesMiddleware'
添加到 settings.middleware\u类添加以下设置以引用文件夹beta。
站点文件夹={ 2:'测试版', }
就这样。
现在,当您转到//beta.foo.com/app/detail时,您将使用beta树中的模板 你进入beta版的列表视图,它将引用父应用程序的列表.html。
注:
您不需要引用站点ID 1,因为该站点没有路径更改。
你不需要把每个网址。我们还通过使用 设置网站别名字典。这将迫使//beta.bar.com也使用beta模板。
站点别名={ “beta.bar.com”:2, }
版本
- 1.0.x django 1.8
- 1.1.x django 1.9<;2
构建过程:
- 更新应用程序内部的
__version_info__
。承诺和推动。 - 用版本标记发布。
git tag <version> -m "Release"; git push --tags
- 构建版本
rm -rf dist build *egg-info; python setup.py sdist bdist_wheel
- 上传数据
twine upload dist/*
玩得开心!