我有一个模型,以便用一些额外的字段扩展用户模型。 "治疗" model有一个用户字段,它是从django.contrib.auth.models连接到User的OneToOneField。这是代码:
from django.db import models
from django.contrib.auth.models import User
class Therapeut(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
# some more fields here
现在,当我想添加"治疗"从模型到Django Admin,我可以从可用的用户中选择或添加一个新用户。
点击后我添加一个新用户(绿色+用户下拉列表旁边),我希望新用户拥有员工状态并将其添加到用户组" therapeuten",以便管理这个新用户的权限。
我没有看到如何(自动)实现这一点,我也没有选择在弹出窗口中设置人员状态和用户组。注意我以超级用户身份登录。见图:
答案 0 :(得分:0)
好的,所以我想出了怎么做,我在这里添加解决方案供参考:
覆盖Therapeut类上的save方法,如下所示:
class Therapeut(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
# some more fields here
# override save method to add staff status to connected user and add it to therapeutengroup
def save(self, *args, **kwargs):
userObj = self.user
userObj.is_staff = True
userObj.save()
therapGroup = Group.objects.get(name='therapeut')
therapGroup.user_set.add(userObj)
super(Therapeut, self).save(*args, **kwargs)
但是,如果其他人有更好或不同的解决方案,欢迎在此提出建议!