在做体能测试项目时,遇到了保存用户权限的需求,然而在save_models 上耽误了几个小时
场景如下
我打算创建用户时,自动赋予用户响应的组group
然而第一次总是无法获得用户的组信息
后来才知道,还有 save_relate(self) 函数,负责存在m2m类型数据
具体代码如下
def save_related(self):
obj = self.new_obj
super(UsersAdmin, self).save_related()
obj.user.groups.clear()
logger.info(obj.user_type.all())
for item in obj.user_type.all():
obj.user.groups.add(item.group)
obj.user.save()
obj.save()
def save_models(self):
obj = self.new_obj
if obj.id is None:
#第一次时
obj.user.is_active=True
obj.user.is_staff=True
obj.user.save()
obj.save()
else:
super(UsersAdmin, self).save_models()