В обход менеджера смежной области / направляющего заместителя менеджера

В моей модели (допустим, класс "A") есть два менеджера - один по умолчанию (objects), который скрывает некоторые объекты (применяет фильтр, допустим, по полю hidden = models.BooleanField) и второй, который показывает только объекты, отфильтрованные по умолчанию (то есть применяет противоположный фильтр). Таким образом, они являются взаимоисключающими.

Я сделал это специально, потому что я не хочу задействовать эти отфильтрованные объекты в интерфейсе администратора.

Пока все хорошо, все работает. Проблема у меня со связанными полями. У меня есть вторая модель, в которой я ссылаюсь на первую (с этими двумя менеджерами) как на поле ManyToMany.

class B(models.Model):
    object_a = models.ManyToMany()

Теперь в логике я создаю несколько объектов экземпляра A с hidden = True (таким образом, невидимых для менеджера объектов класса A по умолчанию). И присваиваю эти объекты экземпляру класса B.

instance_b.object_a.add(instance_a.hidden_object_a)

Теперь я подумал, что это не работает, потому что instance_b.object_a.all() возвращает пустой результат запроса. Но потом я понял, что также применяется менеджер по умолчанию, поэтому запрос фильтруется. И на самом деле, есть скрытые объекты, назначенные на instance_b.object_a, просто они не могут быть возвращены такой ссылкой. Как я могу обратиться к ним изнутри экземпляра B? Или как я могу обратиться к другому менеджеру класса A, обратившись через поле ManyToMany? Возможно ли это? Или мне нужен обходной путь?

Ок, нашел. instance_b.object_a(manager='other_manager').all()

>
Вернуться на верх