gpt4 book ai didi

python - 保存用户时 Django 组不更新

转载 作者:行者123 更新时间:2023-12-01 05:49:39 25 4
gpt4 key购买 nike

我正在尝试将属于员工的用户添加到变更时的员工组中。我已经尝试过使用信号和重载用户模型中的保存,但它们似乎都不起作用。 django 在保存时是否有我不知道的限制?

这是我尝试使用的两个代码片段。 User 继承自 AbstractUser,并与新的 Django 1.5 功能 AUTH_USER_MODEL = 'app.User' 一起使用,Groups 是标准身份验证组。

class User(AbstractUser):
def save(self, force_insert=False, force_update=False, **kwargs):
if self.is_staff:
if not self.groups.filter(name='staff').exists():
g = Group.objects.get(name='staff')
g.user_set.add(self)
else:
if self.groups.filter(name='staff').exists():
g = Group.objects.get(name='staff')
g.user_set.remove(self)

super(User, self).save(force_insert, force_update)


@receiver(post_save, sender=User)
def my_handler(sender, **kwargs):
user = kwargs['instance']
if user.is_staff:
if not user.groups.filter(name='staff').exists():
g = Group.objects.get(name='staff')
g.user_set.add(user)
else:
if user.groups.filter(name='staff').exists():
g = Group.objects.get(name='staff')
g.user_set.remove(user)

最佳答案

如果您使用form(ModelForm),那么组消失的原因可能是在user.save之后调用的form.save_m2m() ()。例如,如果您的表单中有一个空的“组”字段,save_m2m 只会删除您用户的所有组。

关于python - 保存用户时 Django 组不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14814603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com