在 django admin 中过滤对象

kmi*_*l08 1 python django django-admin

我想在 django admin 中管理对象,但我希望只能编辑具有某些属性特定值的对象。确切地说,我现在在 admin.py 中有:

class UnitAdmin(admin.ModelAdmin):
    list_display = ('type', 'name', 'result_file')
    list_filter = ['type']
admin.site.register(Unit, UnitAdmin)
Run Code Online (Sandbox Code Playgroud)

而且我只想管理带有type='SomeSpecificType'. 我看到了一些覆盖 SimpleListFilter 类的东西,但我看不出这在这里是如何应用的。

all*_*aps 5

您必须覆盖get_queryset具有type='SomeSpecificType.

class UnitAdmin(admin.ModelAdmin):
    ...

    def get_queryset(self, request):
        qs = super(UnitAdmin, self).get_queryset(request)
        return qs.filter(type='SomeSpecificType')
Run Code Online (Sandbox Code Playgroud)