Django Admin - Поле "многие ко многим" - Отображение только выбранных вариантов

В принципе, у меня есть две модели: коллекция и пользовательский_объект. Custom_object имеет некоторые общие поля (id, name, value) и может быть чем угодно. Коллекция - это как группа из многих пользовательских объектов, реализованная как поле many to many в django.

Например, коллекция

  • collection_id
  • имя_коллекции
  • ...
  • custom_objects = models.ManyToManyField(to=Custom_object, related_name="related_co")

Я хочу проверять на сайте администратора некоторые коллекции, в основном, какие пользовательские_объекты выбраны. Проблема в том, что у меня более 20k различных custom_objects, что занимает некоторое время для загрузки страницы, а затем следующая проблема - прокрутить все 20k записей вниз, чтобы найти некоторые выбранные custom_objects. Для каждой коллекции выбрано всего около 10-20 custom_objects, не так много. Я хочу видеть только выбранные варианты, мне не важно видеть или выбирать один из других 19.980 вариантов, потому что выбор и отмена выбора выполняется cronjob.

Просто важно видеть выбранные пользовательские_объекты. Есть идеи, как это сделать, например, в admin.py для класса модели коллекции ?

Большое спасибо за то, что привнесли свой опыт и знания!

Я пробовал что-то вроде этого:

class collection(admin.ModelAdmin):
    search_fields = ['name', 'id']

    def formfield_for_manytomany(self, db_field, request, **kwargs):
            kwargs["queryset"] = collection.objects.filter( ??? ) ?
        return super(collection, self).formfield_for_manytomany(db_field, request, **kwargs)

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