gpt4 book ai didi

django - 在管理站点之外重用 Django 变更列表

转载 作者:行者123 更新时间:2023-12-03 03:14:51 25 4
gpt4 key购买 nike

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__()参数。仅这个数字就应该让您远离,并且当您意识到这些数字全部来自管理员 changelist_view() 时,就会加倍如此。 。虽然这些参数自 Django 1.1 以来一直保持不变,但它们确实从 1.0 开始发生了变化,而且它是一个 Django 内部对象,我不会依赖它的接口(interface)是否稳定。

使用 ChangeList 的最佳方法 - 或者特别是获得 changelist 好处(这就是您所追求的) - 是使用 changelist_view()方法。使用它当然需要使用/子类化 AdminSite。 这是值得做的,或者至少值得尝试。看起来你已经这样做了。

该方法采用 request参数和喜欢/(?P<app_label>%s)/(?P<model_name>%s)/在指向它的 URL 路由中。

深入研究代码:

  • ChangeList住在django.contrib.admin.views.main
  • changelist_view()django.contrib.admin.options.ModelAdmin 上的一个方法

更新:在 Django 1.4 中, ChangeListchangelist_view()通过分别添加一个和两个新参数进行更改。

关于django - 在管理站点之外重用 Django 变更列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2315500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com