我想在django admin中管理对象,但我希望只能编辑具有某个属性的特定值的对象。我现在正好在admin.py:
class UnitAdmin(admin.ModelAdmin):
list_display = ('type', 'name', 'result_file')
list_filter = ['type']
admin.site.register(Unit, UnitAdmin)
我想只管理type='SomeSpecificType'
的单位。我看到覆盖SimpleListFilter类的东西,虽然我不知道这在这里是如何适用的。
答案 0 :(得分:2)
您必须覆盖de modelAdmin中的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')
答案 1 :(得分:1)
你可以做到
class UnitAdmin(admin.ModelAdmin):
list_display = ('type', 'name', 'result_file')
list_filter = ['type']
def get_readonly_fields(self, request, obj=None):
if obj and obj.type == 'SomeSpecificType':
return []
return ["type", "name", "result_file"]