跳转到主要内容

在您的用户认证到管理员网站之前显示一个页面

项目描述

Django Frontpage

在您的用户认证到管理员网站之前显示一个页面。

Build Status Coverage Status PyPI version

有效的用户将直接进入管理员网站,其他用户将进入首页,您可以在首页上显示应用程序描述、警告等。您只需要提供自己的模板。

在首页点击登录按钮后,用户将被重定向到原始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),
    ...
]

演示

以下是默认模板的外观

Screenshot of default template

自定义首页模板

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_authenticatedis_staff
    • 用户将被重定向到admin站点
  • 如果用户is_authenticated但不是is_staff
    • frontpage将渲染一个特定消息
  • 如果用户是匿名用户则
    • frontpage将渲染一个特定消息

当访问admin站点的任何页面时

  • 如果用户is_authenticatedis_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 (5.8 kB 查看散列)

上传时间

支持者