Django Admin делает поле редактируемым для определенной группы пользователей
Допустим, в моем приложении есть две группы пользователей (user, admin).
Обе могут видеть поля экземпляра модели admin. У меня есть поле с именем "approved", которое является булевым полем. Администратор должен иметь возможность редактировать это поле, но для пользователя оно должно быть доступно только для чтения. Я пытался использовать метод get_readonly_fields
из django, но он, похоже, не работает в сочетании с атрибутами list_display
и list_editable
.
Мой подход выглядит следующим образом:
@admin.register(Component)
class ComponentAdmin(admin.ModelAdmin):
exclude = ("created_by",)
list_display = (
"id",
"approved"
)
list_editable = ("approved")
def get_readonly_fields(self, request, obj=None):
if is_admin_or_mod(request):
return []
return ["approved"]