Django xadmin save_models 坑大家请注意

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

相关文章

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容