在您的用户认证到管理员网站之前显示一个页面
项目描述
Django Frontpage
在您的用户认证到管理员网站之前显示一个页面。
有效的用户将直接进入管理员网站,其他用户将进入首页,您可以在首页上显示应用程序描述、警告等。您只需要提供自己的模板。
在首页点击登录按钮后,用户将被重定向到原始URL。如果没有原始URL,用户将被重定向到FRONTPAGE_ADMIN_PREFIX
。
入门
与Django 2.0到3.1版本兼容。
使用Django支持的Python版本进行了测试。
安装
pip install django-frontpage
然后修改您的Django设置
将frontpage
应用程序添加到INSTALLED_APPS
INSTALLED_APPS = (
...
'frontpage',
...
)
在AuthenticationMiddleware
或任何其他身份验证中间件(如OAuth2)之后添加中间件到MIDDLEWARE
MIDDLEWARE = [
...
'django.contrib.auth.middleware.AuthenticationMiddleware',
'oauth2_provider.backends.OAuth2Backend',
'frontpage.middleware.FrontpageMiddleware',
...
]
默认管理员前缀为'/admin/'
,如有必要,请更改它
FRONTPAGE_ADMIN_PREFIX = '/admin/'
将首页视图添加到您的urls
from frontpage.views import FrontpageView
urlpatterns = [
path('', FrontpageView.as_view(), name='frontpage'),
path('admin/', admin.site.urls),
...
]
演示
以下是默认模板的外观
自定义首页模板
在frontpage/index.html
中放置不同的首页模板。
或使用urls.py
中的template_name
属性
from frontpage.views import FrontpageView
urlpatterns = [
path('', FrontpageView.as_view(template_name='my_frontpage.html'), name='frontpage'),
path('admin/', admin.site.urls),
...
]
请参阅frontpage/templates/frontpage/index.html以获取默认首页模板。
设置
选项 | 默认 | 描述 |
---|---|---|
FRONTPAGE_ADMIN_PREFIX |
'/admin/' | 必填项,管理员网站的路径。 |
FRONTPAGE_URL_NAME |
'frontpage' | 首页URL的名称 |
FRONTPAGE_LOGIN_URL_NAME |
'admin:login' | 登录URL的名称 |
FRONTPAGE_LOGOUT_URL_NAME |
'admin:logout' | 注销URL的名称 |
FRONTPAGE_RELOGIN_URL_NAME |
'admin:login' | 重新登录URL的名称 |
首页需要了解注销URL,因为该URL不应该被重定向。
如果您以没有访问admin权限的用户登录,则需要重新登录。您可能需要实现一个自定义视图来注销用户,然后重定向到某个登录URL。
流程
当访问frontpage
时
- 如果用户
is_authenticated
且is_staff
则- 用户将被重定向到
admin
站点
- 用户将被重定向到
- 如果用户
is_authenticated
但不是is_staff
则frontpage
将渲染一个特定消息
- 如果用户是匿名用户则
frontpage
将渲染一个特定消息
当访问admin
站点的任何页面时
- 如果用户
is_authenticated
且is_staff
则- 一切正常,
frontpage
在这里不会做任何事情
- 一切正常,
- 如果用户
is_authenticated
但不是is_staff
则- 用户将被重定向到
frontpage
页面
- 用户将被重定向到
- 如果用户是匿名用户则
- 用户将被重定向到
frontpage
页面
- 用户将被重定向到
测试
pip install -r requirements-dev.txt
pip install Django
pytest
作者
项目详情
关闭
django-frontpage-1.0.3.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | de566f9ba21e495ea44d8750da01f69bcbb7cdc5bd99e0df2d523f2ffbbd490c |
|
MD5 | a9f5156a9ccb5a7b746c951f7c5461f7 |
|
BLAKE2b-256 | 8a316d420edda5e942f986027c9238c33cf51bb8e1914e1321b2088bbb429d1b |