Quiero administrar objetos en django admin, aunque me gustaría poder editar solo objetos con un valor específico de algún atributo. Precisamente tengo ahora en admin.py:
class UnitAdmin(admin.ModelAdmin): list_display = ('type', 'name', 'result_file') list_filter = ['type'] admin.site.register(Unit, UnitAdmin) Y me gustaría administrar solo unidades con type='SomeSpecificType' . Vi algo con la anulación de la clase SimpleListFilter, aunque no puedo ver cómo se aplica esto aquí.
Debe anular el get_queryset en de modelAdmin y filtrar los objetos que tienen type='SomeSpecificType .
class UnitAdmin(admin.ModelAdmin): ... def get_queryset(self, request): qs = super(UnitAdmin, self).get_queryset(request) return qs.filter(type='SomeSpecificType')Tu puedes hacer
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"]