假设我有一个博客模型
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 )
但是我想限制一组用户更改Blog模型的字段,说“作者”组不能通过管理面板更改作者的字段。
我该怎么做?谢谢你。
答案 0 :(得分:2)
我想我找到了办法。我可以覆盖save_model
的{{1}}方法并执行以下操作...
ModelAdmin