gpt4 book ai didi

python - 限制(许可)Django 员工用户更改模型的某些字段

转载 作者:行者123 更新时间:2023-11-28 17:36:12 24 4
gpt4 key购买 nike

假设我有一个博客模型

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 )

但我想限制一组用户更改博客模型的字段,比如“作者”组不能通过管理面板更改作者的字段。

我该怎么做?提前致谢。

最佳答案

我想我找到了一个方法。我可以覆盖 ModelAdminsave_model 方法并执行以下操作...

class ArticleAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
if request.user in permited user:
obj.save()
else:
raise forms.ValidationError("you can't do that.")

关于python - 限制(许可)Django 员工用户更改模型的某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30413188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com