Мне нужно получить свойство search_fields
, определенное в параметрах admin для модели. Давным-давно это было очень просто и прямо (но недокументировано), т.е. model._meta.admin.search_fields
.
Доступ к администратору - это трудная часть, и ближайший я мог бы получить:
def admin_options(model):
from django.contrib import admin
return admin.site._registry.get(model)
Я не смог найти элемент ._registry
, зарегистрированный (и подчеркивание, похоже, подразумевает, что он не является общедоступным). Это также не работает для сайтов, которые не запускали admin.autodiscover()
. Резервный код делает это:
try:
appname = model.__module__.split('.models')[0]
admin_module = appname + '.admin'
__import__(admin_module) # registers admin option classes with AdminSite
except:
return None
else:
return admin.site._registry.get(model)
Есть ли официальный (или более простой) способ получить параметры администратора для модели?