Python 如何在Django中将用户从组添加到模型?
我有一家公司,有三年级的和四年级的。我想通过添加组而不是单独添加用户来添加用户。假设我有一个由3位长者组成的小组1,我不想单独添加这3位长者,我只想添加小组1,让3位长者自动添加到长者列表中。我在当前的实现中遇到了一些困难:Python 如何在Django中将用户从组添加到模型?,python,django,Python,Django,我有一家公司,有三年级的和四年级的。我想通过添加组而不是单独添加用户来添加用户。假设我有一个由3位长者组成的小组1,我不想单独添加这3位长者,我只想添加小组1,让3位长者自动添加到长者列表中。我在当前的实现中遇到了一些困难: class Company(django.model): juniors = m2m(User) seniors = m2m(User) junior_groups = m2m(Group) senior_groups = m2m(Grou
class Company(django.model):
juniors = m2m(User)
seniors = m2m(User)
junior_groups = m2m(Group)
senior_groups = m2m(Group)
# currently, I use this signal to add users from a group when a group is added to company
def group_changed(sender, **kwargs):
if kwargs['action'] != 'post_add': return None
co = kwargs['instance']
group_id = kwargs['pk_set'].pop()
juniors = MyGroup.objects.get(pk=group_id).user_set.all()
co.juniors = co.juniors.all() | juniors
co.save()
m2m_changed.connect(...)
主要的问题是这看起来很混乱,我不得不对老年人重复这一点,可能还有其他类型的用户
有没有更直接的方法来做我想做的事情
提前谢谢 您是否试图优化并避免在查询中使用组对象 如果您对一个小的连接查询没有问题,那么可以使用此语法来获取id=COMP_id的junior 这样,您就不需要直接处理用户并一直复制它们 juniors=User.objects.filter(groups\u company\u id=COMP\u id,groups\u type=Junior) seniors=User.objects.filter(组\公司\ id=COMP \ id,组\类型=Senior) 假设
- 将相关名称“组”添加到组和用户之间的m2m关系中
- 您的组具有您管理的类型
- 您将组模型上的外键字段称为“公司”