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)我想知道是否有人有这方面的经验,或可以提出一个替代方案。
发布于 2011-11-08 02:54:29
ChangeList作为一个类真的很酷,而且功能齐全。但是,在 monolith上下文之外使用是很困难的。
ChangeList类接受12个必需的__init__()参数。单是这个数字就可以引导您离开,并且加倍,因此当您意识到这些都来自Admin changelist_view()时。虽然自Django 1.1以来,这些参数保持不变,但它们确实从1.0更改了,而且它是Django内部对象,因此我不会依赖它的接口是稳定的。
使用ChangeList的最佳方法--或者特别是获得变更列表的好处(这就是您所追求的)--是使用changelist_view()方法。当然,使用这种方法需要使用/子类AdminSite。这是值得做的,或者至少是尝试一下。看起来已经是了。
该方法接受request参数,并在指向它的URL路由中喜欢/(?P<app_label>%s)/(?P<model_name>%s)/。
深入研究代码:
ChangeList in django.contrib.admin.views.mainchangelist_view()是一种基于django.contrib.admin.options.ModelAdmin的方法
更新:在Django 1.4中的,通过分别添加一个和两个新参数,ChangeList和changelist_view()都发生了变化。
https://stackoverflow.com/questions/2315500
复制相似问题