models.py:
class Model(models.Model):
class Meta:
# your custom permissions
permissions = (
('model_can_edit_title', _('Can Edit Title')),
)
сделать makemigration и мигрировать.
admin.py:
def get_readonly_fields(self, request, obj=None):
# you can check user type. and make decision
if 'app.model_can_edit_title' in request.user.user.get_all_permissions():
# user can update all fields
return []
# user can't update title field, title will be read only.
return ['title',]
вы можете использовать
def get_exclude(self, request, obj=None):
метод также.