Django xadmin save_models 坑大家请注意

2019-03-04  本文已影响97人  iCloudEnd

在做体能测试项目时,遇到了保存用户权限的需求,然而在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() 
    

相关文章

上一篇 下一篇

猜你喜欢

热点阅读