Да, вы определяете переменную в своих настройках, например:
# settings.py
# ...
LIST_PER_PAGE = 20
Изменить отдельные ModelAdmin
классы
, тогда в ваших представлениях вы можете написать:
from django.conf import settings
class CurrentModelAdmin(models.ModelAdmin):
list_per_page = settings.LIST_PER_PAGE
Определение базового класса с набором атрибутов list_per_page
Может быть неудобно писать это для для каждого ModelAdmin
представления, так что вы можете, например, сначала создать подкласс, которыйустанавливает list_per_page
, а затем подкласс этой модели:
from django.conf import settings
class <b>BaseModelAdmin</b>(models.ModelAdmin):
list_per_page = settings.LIST_PER_PAGE
class CurrentModelAdmin(<b>BaseModelAdmin</b>):
# ...
pass
Так что теперь нам больше не нужно указывать атрибут list_per_page
в каждом ModelAdmin
, пока мы подкласс из BaseModelAdmin
.
Monkey patch для ModelAdmin
class
Вы также можете "monkey patch" атрибут list_per_page
и, таким образом, обновлять значение только в ModelAdmin
уровень:
# app/monkey_patching.py
from django.conf import settings
ModelAdmin.list_per_page = settings.LIST_PER_PAGE
и следуйте инструкциям , чтобы «активировать» исправление обезьян в Django .