向Django管理后台添加新页面。
项目描述
AdminPlus 的目标是成为最小的扩展,让Django管理组件更加出色,允许添加不与模型绑定的管理视图。
市面上有一些包,如 Nexus 和 django-admin-tools,可以替换整个管理后台。Nexus支持添加全新的“模块”(Django模型管理器是一个默认模块),但似乎需要编写很多样板代码。据我所知,django-admin-tools不支持添加自定义页面。
AdminPlus所做的只是允许您添加简单的自定义视图(好吧,它们可以像您喜欢的那样复杂!)而无需篡改URL,并在管理首页中直接提供它们的链接。
安装AdminPlus
使用pip从PyPI安装
pip install django-adminplus
或使用pip从GitHub获取AdminPlus
pip install -e git://github.com/jsocol/django-adminplus#egg=django-adminplus
并将 adminplus 添加到您的已安装应用中,并将 django.contrib.admin 替换为 django.contrib.admin.apps.SimpleAdminConfig
INSTALLED_APPS = (
'django.contrib.admin.apps.SimpleAdminConfig',
# ...
'adminplus',
# ...
)
要在您的Django项目中使用AdminPlus,您需要替换django.contrib.admin.site,它是一个django.contrib.admin.sites.AdminSite的实例。建议在urls.py中调用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)),
# ...
]
恭喜!您现在正在使用AdminPlus。
使用AdminPlus
现在您已安装了AdminPlus,您可能想要使用它。AdminPlus与内置的admin模块100%兼容,因此如果您一直在使用它,您不需要进行任何更改。
AdminPlus提供了一个新功能,admin.site.register_view,可以将任意视图附加到admin。
# 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处可用,并在admin索引的自定义视图部分中有一个链接到它。
您也可以将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()等调用。视图将添加到admin命名空间中,因此foo的urlname将使用reverse("admin:foo")进行反转。
visible:一个布尔值或返回布尔值的可调用对象,它定义了自定义视图是否在admin仪表板中可见。
所有注册的视图都被封装在admin.site.admin_view中。
django-adminplus-0.6.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 509635d3bc974c1cf1d2d151d5c690b81619a927eb431d758886cb52140b5eb9 |
|
MD5 | aa3293298b342c4431dfc271c7ba1ca8 |
|
BLAKE2b-256 | 06f96196e5b09e18ca3efae5bdde9d894ccfa2bf0406f35181ba2b5d6af89d6b |
django-adminplus-0.6-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4d1b201454feeea76a74d781d8ca69bcd6d0066399325ef63433e273e1f51882 |
|
MD5 | 49bc4d827f02b6d715642699bca8413c |
|
BLAKE2b-256 | 517f90e8f43b5e7fdc11f1e734239e6c5b302ee2ad270014c6e5482c8cb8d290 |