gpt4 book ai didi

管理中所有模型的 Django list_per_page

转载 作者:行者123 更新时间:2023-12-04 02:56:32 25 4
gpt4 key购买 nike

再会!我正在尝试找到将 list_per_page 添加为 admin 中所有模型的全局参数的解决方案。我发现,ModelAdmin 通过 ChangeList 对象有这个参数,它的默认值是 100。但是如果我想将它设置为 20 并且它对所有模型都是 true 呢?我的意思是,如果我需要在 admin 中更改当前模型的 list_per_page,我需要添加:

class CurrentModelAdmin(models.ModelAdmin):
list_per_page = 20
...

有没有办法重新定义 ChangeList 对象来重写默认值?
例如在 settings.py 中作为 LIST_PER_PAGE = 20

更好的是,我如何从前端接收它并动态地使用它?

最佳答案

是的,您在设置中定义了一个变量,例如:

# settings.py

# ...
LIST_PER_PAGE = 20

更改个人 ModelAdmin类(class)

然后在你的观点中你可以写:
from django.conf import settings

class CurrentModelAdmin(models.ModelAdmin):
list_per_page = settings.LIST_PER_PAGE

使用 list_per_page 定义基类属性集

为每个 ModelAdmin 写这个可能很麻烦 View ,因此您可以例如首先创建一个设置 list_per_page 的子类。 ,然后从该模型子类化:
from django.conf import settings

class BaseModelAdmin(models.ModelAdmin):
list_per_page = settings.LIST_PER_PAGE

class CurrentModelAdmin(BaseModelAdmin):
# ...
pass

所以现在我们不再需要指定 list_per_page每个 ModelAdmin 中的属性,只要我们从 BaseModelAdmin 子类化.

猴子补丁 ModelAdmin类(class)

您还可以“猴子补丁” list_per_page属性,因此只更新 ModelAdmin 处的值等级:
# app/monkey_patching.py

from django.conf import settings

ModelAdmin.list_per_page = settings.LIST_PER_PAGE

并关注 steps to "activate" the monkey patching in Django .

关于管理中所有模型的 Django list_per_page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52931020/

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