首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在管理站点外重用Django Changelist

在管理站点外重用Django Changelist
EN

Stack Overflow用户
提问于 2010-02-23 01:14:19
回答 1查看 4.2K关注 0票数 13

Django变更列表表非常酷-可搜索、可过滤、多选择操作等。

我正在为一个应用程序构建一个定制后端,我一直意识到:这正是我所需要的,我应该重用它。

有没有人有过使用Django管理应用程序之外的变更列表的经验?

我目前得出的结论是:

代码语言:javascript
复制
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)

我想知道是否有人有这方面的经验,或可以提出一个替代方案。

EN

回答 1

Stack Overflow用户

发布于 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.main
  • changelist_view()是一种基于django.contrib.admin.options.ModelAdmin

的方法

更新:在Django 1.4中的,通过分别添加一个和两个新参数,ChangeListchangelist_view()都发生了变化。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2315500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档