我在我的 UserAdmin 中定义了一个 save_model 来更改用户的对象级别权限。
class UserAdmin(BaseUserAdmin):
def save_model(self, request, obj, form, change):
obj.save()
allprojects = Project.objects.all()
projects = obj.workingproject.all()
remove_perm("view_project", obj, allprojects)
assign_perm("view_project", obj, projects)
obj.save()
remove_perm 和 assign_perm 是 django-guardian 的快捷方式,workingproject 是用户的 M2M 字段。
问题:选择不同的项目并保存权限时不会更改,但是第二次按“保存”按钮可以根据需要进行更改。我究竟做错了什么?