python - Django如何通过信号将成员添加到组中?
问题描述
我的其他信号正在工作,例如更新和创建实例,但我不明白为什么它没有将成员添加到组中?
@receiver(post_save,sender=settings.AUTH_USER_MODEL)
def update_user_profile_from_User_model(sender,instance,created,**kwargs):
if instance.email:
MyAuthors.objects.filter(user=instance).update(user=instance,first_name=instance.first_name,last_name=instance.last_name,email=instance.email,is_blog_author=instance.is_blog_author)
if instance.is_blog_author == True:
my_group = Group.objects.get(name='myauthors')
print("group name: ", my_group )
add_user = my_group.user_set.add(instance)
print("add_user: ", add_user )
打印结果:
group name: myauthors
add_user: None
我也试过这个,但没有奏效。
group = Group.objects.get(name='myauthors')
if instance.is_blog_author:
instance.groups.add(group)
instance.save()
#update1 我的用户模型:
class UserManagement(AbstractUser):
is_blog_author = models.BooleanField(default=False)
is_editor = models.BooleanField(default=False)
is_subscriber = models.BooleanField(default=False)
is_customer = models.BooleanField(default=False)
#update2 添加以下更改后,我的用户添加到组但未保存。
if instance.is_blog_author == True:
User_id = get_user_model()
user_add_to_group = User_id.objects.get(pk=instance.id)
my_group = Group.objects.get(name='myauthors')
print("group name: ", my_group )
add_user = my_group.user_set.add(user_add_to_group)
print("add_user: ", user_add_to_group )
打印结果:
group name: myauthors
add_user: aws
如何保存信号?我尝试了 add_user.save() 并收到此错误
'NoneType' object has no attribute 'save'
解决方案
推荐阅读
- java - 通过 PrintWriter 发布动态 HTML 表单 out.print(HTML Form) 有时不起作用
- flask-sqlalchemy - 如何在不属于我的 SQLAlchemy 模型的 Flask-Marshmallow 中添加自定义字段
- javascript - 在 React 顶级组件中分离状态相关函数
- node.js - 无法在 Hasura 中获得突变
- c# - C# Avro json 读取得到算术运算导致溢出
- angular - 使用导航无限渲染组件
- c# - 如何在 C# 中更新数据
- python - 结束重叠指数的迭代解决方案
- sql - 在 SQL 中解析 XML 中的选定值
- html - 我不能在 HTML 中将两个页面链接在一起。?