Передача набора запросов в Django AdminModel

Я пытаюсь сделать ссылку на другую модель с моей сортировкой.

query = Cars.objects.filter(task_id__exact=obj.task_id, 
                            engine__isnull=False).values_list('engine', flat=True)
engines_ids_list=list(query)

link = reverse("admin:auto_engines_changelist") + f"?id={engines_ids_list}"
                                                               ^
                                                         Not work, it's example

?engine_id=1&engine_id=2 отображение объекта с последним параметром (engine_id=2), а не 2 объекта..

только работа Engines.objects.filter(pk__in=engines_ids_list)

Как я могу отправить этот фильтр на страницу списка изменений двигателя?

Вы можете передать task_id в качестве параметра в url.

link = reverse("admin:auto_engines_changelist") + f"?task_id={task_id}"

тогда вы можете получить доступ к значению {task_id} в методе get_queryset() Engines Modeladmin.

def get_queryset(self, request):
    queryset = super().get_queryset(request)

    task_id = request.GET.get('task_id')
    if task_id is not None:
        engine_ids = Cars.objects.filter(task_id__exact=task_id, engine__isnull=False).values_list('engine', flat=True)
        queryset = queryset.filter(id__in=engine_ids)
    return queryset
Вернуться на верх