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)