重用的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) 

我想知道如果任何人有经验,用这个也可以提出一种替代。

+0

您是否设法重用更改列表或以某种方式对其进行修改? – guival

+0

试图做同样的事情,很想听听最后的办法 – dave4jr

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,既ChangeListchangelist_view()通过加入一种改变和两个新的参数分别。