跳转到主要内容

在网站前端显示仅限员工使用的控件

项目描述

https://img.shields.io/travis/edoburu/django-staff-toolbar/master.svg?branch=master https://img.shields.io/pypi/v/django-staff-toolbar.svg https://img.shields.io/pypi/l/django-staff-toolbar.svg https://img.shields.io/codecov/c/github/edoburu/django-staff-toolbar/master.svg

django-staff-toolbar

在网页上显示仅限员工使用的控件。

功能

  • 链接到当前对象的管理页面。

  • 显示工具栏项的完整配置。

  • 添加自定义菜单项的API。

django-staff-toolbar preview

安装

首先安装模块,最好是在虚拟环境中

pip install django-staff-toolbar

配置

将应用程序添加到 settings.py

INSTALLED_APPS += (
    'staff_toolbar',
)

确保将 django.core.context_processors.request 包含在 TEMPLATE_CONTEXT_PROCESSORS 中。

将HTML小部件添加到模板

{% load staff_toolbar_tags %}

{% staff_toolbar %}

确保在模板中加载布局

<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}staff_toolbar/staff_toolbar.css" />

布局

默认情况下,包括一个简单的布局。您可以将其更改为您喜欢的布局。

包括源SASS文件,使在需要时将其集成到项目样式表中更加容易。

自定义管理URL

使用以下方式自动检测管理URL

  • 模板中的 object 变量。

  • 模板中的 view.object 变量。

在某些情况下,这可能不够。当自动检测的“更改对象”链接未指向正确页面时,可以使用两种方法解决此问题

使用视图

当你的类视图实现了 staff_toolbar.views.StaffUrlMixin,该信息将被用于渲染正确的“更改对象”链接。

这需要Django 1.5,它将 view 变量导出到模板。

使用模板

在模板中,你可以包含

{% set_staff_object page %}

如有需要,也可以设置URL

{% set_staff_url %}{% url 'dashboard:catalogue-product' object.id %}{% end_set_staff_url %}

自定义菜单

默认菜单设置如下

STAFF_TOOLBAR_ITEMS = (
    'staff_toolbar.items.AdminIndexLink',
    'staff_toolbar.items.ChangeObjectLink',
    'staff_toolbar.items.LogoutLink',
)

每一行代表一个可调用的函数,使用 (request, context) 来调用。当包含一个元组时,这将转换成一个新的 Group 对象,导致输出中额外出现一个 <ul> 标签。

一个更复杂的示例

from django.core.urlresolvers import reverse_lazy
from django.utils.translation import ugettext_lazy as _
from staff_toolbar import toolbar_item, toolbar_link, toolbar_title, toolbar_literal

STAFF_TOOLBAR_ITEMS = (
    'staff_toolbar.items.AdminIndexLink',
    'staff_toolbar.items.ChangeObjectLink',
    (
        toolbar_title(_("User")),
        toolbar_link(url=reverse_lazy('admin:password_change'), title=_("Change password")),
        'staff_toolbar.items.LogoutLink',
    )
)

toolbar_title()toolbar_item() 函数允许向项目传递额外的参数,而无需在设置中预先加载它们。

也可以直接实例化实际的类,但是这可能会因为导致你的设置模块加载大量其他代码而引发导入错误。以下示例与上一个示例功能相同

from django.core.urlresolvers import reverse_lazy
from django.utils.translation import ugettext_lazy as _
from staff_toolbar.items import AdminIndexLink, ChangeObjectLink, Group, ToolbarTitle, Link, LogoutLink

STAFF_TOOLBAR_ITEMS = (
    AdminIndexLink(),
    ChangeObjectLink(),
    Group(
        ToolbarTitle(_("User")),
        Link(url=reverse_lazy('admin:password_change'), title=_("Change password")),
        LogoutLink(),
    )
)

注意事项

对于具有 SESSION_COOKIE_SECURE = True 的HTTPS站点,工具栏显然不会在由HTTP提供的标准页面上显示。

要么在HTTPS上显示所有页面(毕竟这是正确的做法™),要么请提供一个很好的pull request,以很好地解决这个问题,用于混合站点。

贡献

此模块旨在通用,并易于集成到您的站点中。欢迎提交pull request和改进!

如果您有任何其他有价值的贡献、建议或想法,也请告诉我们!

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解更多关于 安装软件包 的信息。

源分布

django-staff-toolbar-2.0.tar.gz (14.8 kB 查看哈希)

上传时间

构建分布

django_staff_toolbar-2.0-py3-none-any.whl (17.0 kB 查看哈希)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面