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

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将Map<String,String>传递给需要Map<String,Object>   java在循环中使用字符串而不是StringBuilder是否会造成内存损失?   jnlp如何更新java控制台JRE?   java更改、修改和重新打包CXFAPI源文件   JavaFXJava应用程序在Fedora上运行一段时间后关闭   使用来自不同类的方法的java   java如何通过ant脚本在linux中使用subst?   java在使用camunda modeler进行base64编码/解码时出错   获取java。netbeans、weblogic和fastswap设置为true时的lang.NoSuchMethodError   java如何提高FinalizerThread在GC中收集对象的优先级   java检测具有相同根的单词   netbeans crud应用程序中的java错误