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

django-staff-toolbar的Python项目详细描述


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

Django员工工具栏

在网页上仅显示人员控件。

功能:

  • 链接到当前对象的管理页。
  • 显示的工具栏项的完整配置。
  • 用于添加自定义菜单项的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小部件添加到模板:

{%loadstaff_toolbar_tags%}{%staff_toolbar%}

确保版面已加载到模板中:

<linkrel="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_objectpage%}

如果需要,还可以设置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>标记。

一个更复杂的例子:

fromdjango.core.urlresolversimportreverse_lazyfromdjango.utils.translationimportugettext_lazyas_fromstaff_toolbarimporttoolbar_item,toolbar_link,toolbar_title,toolbar_literalSTAFF_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()函数允许传递其他参数 到项目,而不必在设置中加载它们。

直接实例化实际的类也是完全可能的, 但是,这可能会导致导入错误,因为它会导致设置模块加载许多其他代码。 以下内容在功能上等同于前面的示例:

fromdjango.core.urlresolversimportreverse_lazyfromdjango.utils.translationimportugettext_lazyas_fromstaff_toolbar.itemsimportAdminIndexLink,ChangeObjectLink,Group,ToolbarTitle,Link,LogoutLinkSTAFF_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上显示所有页面(毕竟这是正确的方式)。 或者请提供一个很好的拉取请求,很好地解决了混合站点的这个问题。

贡献

这个模块被设计成通用的,并且很容易插入您的站点。 欢迎拉式请求和改进!

如果您有任何其他有价值的贡献,建议或想法,请让我们知道以及!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java NIO选择器最多只能选择50个SelectionKeys?   java阻止ImageButton创建新活动   为什么Java方法“Arrays.copyOf”处理中的整数数组与处理对象数组时的行为不同   java将安卓 1.6日历字段提取到vcal   将字符串转换为双精度后的java问题   java使用Webflux,是否可以使用AOP获取用于日志记录的ServerHttpRequest   java与jTextArea的基本区别是什么。setText()和jTextArea。append()方法?   java程序执行时间|将值保存到文件或数据结构?   java如何将表示字符的整数转换为字符串?   Java LWJGL新的渲染问题windows   java GUI提供异常   java创建第二个对象使类的函数不再工作   如何在java中将000验证为3位数字?   java bigO算法的时间复杂度,可以在不重复的情况下找到最长的子串   在30像素内点击按钮后,java在两个图像之间转换   java eclipse maven nexus不可解父pom   当存在其他SecurityConstraint时,java TransportGuary机密将被忽略   重新连接后激发的java Red5客户端流断开事件   javafx聊天应用程序中连接客户端的java问题