Django UserAdmin,save#u model override函数不';t返回更新的用户组
在django admin用户窗体中保存用户后,我需要执行一些操作。具体来说,在UserAdmin的save_user方法中,我需要检查用户在创建后是否属于某个组。当我在使用“医生”组保存新用户模型后打印用户组时,该组似乎不会在save_model函数中更新。下面是澄清的示例代码:Django UserAdmin,save#u model override函数不';t返回更新的用户组,django,django-admin,Django,Django Admin,在django admin用户窗体中保存用户后,我需要执行一些操作。具体来说,在UserAdmin的save_user方法中,我需要检查用户在创建后是否属于某个组。当我在使用“医生”组保存新用户模型后打印用户组时,该组似乎不会在save_model函数中更新。下面是澄清的示例代码: def is_doctor(self, user): z = user.groups.filter(name='Doctors').exists() if not z: z = use
def is_doctor(self, user):
z = user.groups.filter(name='Doctors').exists()
if not z:
z = user.groups.filter(name='Doctor').exists()
return z
def save_model(self, request, obj, form, change):
super(UserAdmin, self).save_model(request, obj, form, change)
user = User.objects.get(pk=obj.pk)
print(f'is doctor: {User.objects.is_doctor(obj)}')
print(f'is doctor new user: {User.objects.is_doctor(user)}')
print('Printing groups of newly created user...')
groups = user.groups.all()
groups_count = groups.count()
for group in groups:
print(group['name'])
print(f'This user has {groups_count} groups')
使用“医生”组保存用户后,如下图所示:
它打印以下内容:
is doctor: False
is doctor new user: False
Printing groups of newly created user...
This user has 0 groups
在创建新用户对象时,未更新添加的医生组。这是正常的还是我错过了什么