Я создал собственный менеджер для модели Django, который возвращает QuerySet, содержащий подмножество objects.all (). Мне нужно, чтобы это был Менеджер по умолчанию для модели, так как я также создаю пользовательский тег, который будет извлекать содержимое из любой модели (указанной аргументом), и должен использовать Менеджер по умолчанию для указанной модели. Все это прекрасно работает, за исключением того, что администратор Django ТАКЖЕ использует менеджер по умолчанию для этой конкретной модели, что означает, что не все экземпляры модели отображаются в администраторе.
Документы Django не помогают:
Если вы используете пользовательские объекты Manager, обратите внимание, что первый менеджер Django встречается (в
порядок, в котором они определены в модели) имеет особый статус. Django интерпретирует этот первый Manager, определенный в классе, как «менеджер по умолчанию», и несколько частей Django (, но не приложение администратора ) будут использовать этот Manager исключительно для этой модели.
(документация для менеджеров Django)
Администратор не должен использовать Менеджер по умолчанию, но, похоже, в моем случае. Обратите внимание, что я также явно добавил менеджер по умолчанию objects
:
subset = CustomManager() # the default manager
objects = models.Manager() # the one I want admin to use
Как мне указать, какой менеджер должен использовать администратор?