PressKit()到Django的端口
django-presskit的Python项目详细描述
django presskit
从拉米伊斯梅尔的presskit()/dopresskit到Django的港口。
安装
要求:
要求:
- django<;2
- Django文件管理器
- 简单的缩略图
- 降价
- 枕头
- django-admin-sortable2
配置
将“django_presskit”和“adminsortable2”添加到您安装的settings.py应用程序中。
将DJANGO_PRESSKIT_DEFAULT_COMPANY_ID = 1
添加到设置文件中。
在main urls.py中,添加如下行:url(r'^presskit/', include('django_presskit.urls', namespace='django_presskit')),
所有数据都可以在django管理员中设置。
升级
如果升级到1.1.0,请在将adminsortable2
添加到设置后对项目运行以下命令:
python manage.py reorder django_presskit.additionallink django_presskit.award django_presskit.companyimageattachment django_presskit.companylogoattachment django_presskit.companyvideo django_presskit.contact django_presskit.credit django_presskit.feature django_presskit.platform django_presskit.price django_presskit.project django_presskit.projectimageattachment django_presskit.projectlogoattachment django_presskit.quote django_presskit.social django_presskit.trailer
从pressKit()/dopressKit转换
如果您从rami ismail的pressKit()切换,则需要确保浮动的所有旧URL继续工作。presskit()url看起来像/presskit/sheet.php?p=exploit_zero_day
。你需要把它们转换成类似/presskit/exploit-zero-day/
的东西。
确保django presskit项目的slug与presskit()项目的slug匹配。然后,可以使用url重写将用户重定向到新url。
如果启用了mod_rewrite的apache,请在.htaccess
文件中添加如下内容:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^p=(.*)$
RewriteRule "^/?presskit/sheet.php" "/presskit/projects/%1" [N]
# Repeatedly remove underscores until only one is left.
RewriteRule "^(/?presskit/projects/.*)_(.*_.*)$" "$1-$2" [N]
# Redirect with the last underscore rewrite.
RewriteRule "^(/?presskit/projects/.*)_(.*)$" "$1-$2" [R=301]
RewriteRule "^/?presskit/sheet\.php$ " "/presskit/" [R=301]
如果使用nginx进行重写,则如下所示:
location ~* /presskit/sheet.php {
if ($args ~* "^p=(\d+)") {
set $proj $1;
set $args '';
rewrite ^.*$ /presskit/projects/$proj permanent;
}
}
# Remove up to 10 underscores until none are left.
rewrite ^(/?presskit/projects/.*?)_(.*)$ $1-$2 last
rewrite ^/?presskit/sheet\.php$ /presskit/ permanent
如果您使用的是nginx,并且其中一个slug有超过10个下划线,请在第一个下划线的上方添加一个重写,以手动修复该情况。nginx不希望在重写计算中循环超过10次。
贡献
提交问题或请求时,请遵守我们的Code of Conduct。