Предположим, что у меня есть модель дневникОграничение (разрешение) Джанго пользователя сотрудников от изменения определенных полей модели
class Blog(models.Model):
author = models.ForeignKey(User)
title = models.CharField(max_length=250, unique=True)
body = models.TextField()
У меня есть модель администратора, которая гарантирует то, что пользователь может изменить какой блог:
class BlogAdmin(admin.ModelAdmin):
def has_add_permission(self, request):
return request.user.groups.filter(name='author').exists()
def has_change_permission(self, request, obj=None):
return request.user.groups.filter(name='editor').exists() or (request.user.groups.filter(name='author').exists() and Blog.objects.filter(pk=obj, author=request.user).count() >0)
def has_delete_permission(self, request, obj=None):
return request.user.groups.filter(name='editor').exists() or (request.user.groups.filter(name='author').exists() and Blog.objects.filter(pk=obj, author=request.user).count() >0)
Но я хочу ограничить группу пользователей от изменения поля модели блога, например, «авторская» группа не может изменить поле автора через панель администратора.
Как я могу это сделать? Спасибо заранее.
Вы также можете использовать '' get_readonly_fields() '': https://docs.djangoproject.com/en/1.7/ref/contrib/ admin/# django.contrib.admin.ModelAdmin.get_readonly_fields, чтобы пользовательский интерфейс поля не изменялся – gipi