我正在尝试通过我的排序来引用另一个模型。
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=2)的?engine_id=1&engine_id=2
显示对象,而不是2个对象。
仅限Engines.objects.filter(pk__in=engines_ids_list)
使用
如何将此筛选器发送到引擎更改列表页面?
发布于 2021-09-06 22:50:35
可以将task_id作为参数传递到url中。
link = reverse("admin:auto_engines_changelist") + f"?task_id={task_id}"
然后,您可以访问Engines Modeladmin的get_queryset()方法中的{task_id}值。
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
https://stackoverflow.com/questions/69080858
复制