在Django Admin上的changelist_view中修改查询集

时间:2019-07-10 13:16:05

标签: python django django-admin

我需要修改django管理员中变更列表使用的最终查询集。

我相信(如果我错了,请纠正我)我可以通过重写changelist_view()来实现,但是尝试更改查询集无效,只是在管理员中加载了原始查询集。

def changelist_view(self, request, extra_context=None):
    response = super().changelist_view(
        request,
        extra_context=extra_context,
    )

    try:
        qs = response.context_data['cl'].queryset
    except (AttributeError, KeyError):
        return response

    response.context_data['cl'].queryset = qs.filter(pk__in=qs.order_by().values('pk').distinct('target'))

    return response

我认为,更改变更列表的上下文数据可以实现此目的,但这没有用。

如何执行此操作,请注意,在应用所有其他过滤器后,我需要修改最终查询集。

0 个答案:

没有答案