Передача набора запросов в 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