向django管理员添加新页面。

django-adminplus的Python项目详细描述


adminplus的目标是尽可能小的扩展到优秀的 django管理组件,允许您添加未绑定到 模型。

外面有包裹,像Nexus 以及django-admin-tools那个 替换整个管理员。Nexus支持添加全新的“模块”(即 django model admin是一个默认模块),但似乎有很多锅炉 用车牌号来做。据我所知,django管理工具不支持 添加自定义页。

adminplus只允许您添加简单的自定义视图(它们可以是 就像你喜欢的那样复杂!)而不是到处乱搞劫持网址, 在管理索引中提供指向它们的链接。

https://travis-ci.org/jsocol/django-adminplus.png?branch=master

安装adminplus

使用pip从PyPI安装:

pip install django-adminplus

或者从GitHub获得adminplus 使用pip:

pip install -e git://github.com/jsocol/django-adminplus#egg=django-adminplus

并将adminplus添加到已安装的应用程序中:

INSTALLED_APPS = (
    # ...
    'adminplus',
    # ...
)

要在Django项目中使用AdminPlus,需要替换 django.contrib.admin.site,它是 django.contrib.admin.sites.AdminSite。我建议在^{tt4}中执行此操作$ 在调用admin.autodiscover()

# urls.py
from django.contrib import admin
from adminplus.sites import AdminSitePlus

admin.site = AdminSitePlus()
admin.autodiscover()

urlpatterns = [
    # ...
    # Include the admin URL conf as normal.
    (r'^admin', include(admin.site.urls)),
    # ...
]

如果您使用的是django 1.7,那么还应该将django.contrib.admin替换为 django.contrib.admin.apps.SimpleAdminConfig按顺序 要禁用自动发现,请执行以下操作:

INSTALLED_APPS = (
    # ...
    'django.contrib.admin.apps.SimpleAdminConfig',  # instead of 'django.contrib.admin'
    # ...
)

恭喜你!你现在正在使用adminplus。

使用adminplus

既然已经安装了adminplus,就可以使用它了。adminplus是 100%兼容内置的管理模块,所以如果你一直在使用它, 你不应该改变任何事情。

AdminPlus提供了一个新函数admin.site.register_view来附加 管理员的任意视图:

# someapp/admin.py
# Assuming you've replaced django.contrib.admin.site as above.
from django.contrib import admin

def my_view(request, *args, **kwargs):
    pass
admin.site.register_view('somepath', view=my_view)

# And of course, this still works:
from someapp.models import MyModel
admin.site.register(MyModel)

现在my_view可以在admin/somepath访问,并且 在管理索引的custom views部分链接到它。

您还可以使用register_view作为装饰符:

@admin.site.register_view('somepath')
def my_view(request):
    pass

register_view接受一些可选参数:

  • name:在自定义视图列表中显示的友好名称。例如:

    def my_view(request):
        """Does something fancy!"""
    admin.site.register_view('somepath', 'My Fancy Admin View!', view=my_view)
    
  • urlname:为urlpattern命名,以便可以通过 redirect()reverse()等。

  • visible:一个布尔值或可调用的返回值,它定义 自定义视图在管理仪表板中可见。

所有注册的视图都包装在admin.site.admin_view中。

注意

具有与自动发现的URL匹配的URL的视图(例如,通过 modeladmins)将覆盖自动发现的url。

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

推荐PyPI第三方库


热门话题
java OpenShift的齿轮特性   java如何在Liferay站点的每个页面上放置公司地址和电话?   java确定整数数组中是否存在一个子集,在两个条件下求和到给定的目标值   序列化为什么java中的serialVersionUID必须是静态的、最终的、长类型的?   java响应返回null   java注入接口实现Quarkus   java我不明白为什么第二次排序的运行时间比第一次慢?   (Java)显示图像的最佳方式?   java Android应用程序因添加布局而崩溃   java如何在运行时获取泛型变量的类   java Selenium web驱动程序:无效的选择器:*:WebKitFullScreenSentor   Spring中的java注入值始终为空   Eclipse中带有TestNG插件的@BeforeSuite和@AfterSuite的java问题   使用trycatch块、filewriter和printwriter在java中创建自定义类   如何在Java 安卓上绘制相交的两条线