重用的Django变更列表外管理站点
问题描述:
Django的修改列表表是真的很酷的 - 搜索,过滤,多选动作等重用的Django变更列表外管理站点
我建立一个定制的后端一个应用程序,我一直意识到:这正是我需要什么,我应该重新使用它。
有没有人有使用Django的管理应用以外的更改列表的经验?
我在到达什么目前是这样的:
from profile.admin import ProfileAdmin
from django.contrib.admin.sites import AdminSite
from profile.models import Profile
profile_admin = ProfileAdmin(Profile, AdminSite())
return profile_admin.changelist_view(request)
我想知道如果任何人有经验,用这个也可以提出一种替代。
答
ChangeList作为一个类是非常酷和功能齐全。但是,在AdminSite整体框架的上下文之外的难以使用。
ChangeList类需要12个必需的__init__()
参数。当你意识到这些数据全部来自Admin changelist_view()
时,单单这个数字应该可以让你远离和加倍。虽然这些参数自Django 1.1以来一直保持不变,但它们的确从1.0变为了Django内部对象,我不会依赖它的稳定接口。
使用变更列表的最佳方式 - 或专门拿到变更列表益(这是你在后) - 是使用changelist_view()
方法。使用这当然需要使用/子类AdminSite。 这是值得做的,或者至少尝试。看起来你已经是。
该方法采用request
参数,并在指向它的URL路由中使用/(?P<app_label>%s)/(?P<model_name>%s)/
。
挖掘到的代码:
-
ChangeList
生命django.contrib.admin.views.main
-
changelist_view()
是django.contrib.admin.options.ModelAdmin
更新的方法:在Django中1.4,既ChangeList
和changelist_view()
通过加入一种改变和两个新的参数分别。
您是否设法重用更改列表或以某种方式对其进行修改? – guival
试图做同样的事情,很想听听最后的办法 – dave4jr