Как создать собственное разрешение для определенных полей в модели? - PullRequest
1 голос
/ 20 мая 2019

Я создал модель и хочу создать группу пользователей, у которой есть разрешение на редактирование только одного поля этой модели.

Например, если у меня есть модель Car с некоторыми полями (например, model, brand, registration) и одним основным пользователем, я хочу, чтобы пользователь мог изменять только регистрация поле.

Можно это сделать?

1 Ответ

0 голосов
/ 20 мая 2019

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):

метод также.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...