Django:如何修改post_save信号代码自动创建多个Group?
解决Django post_save信号自动创建多个组的问题
你当前代码的问题在于把元组('manager', 'employee')直接传给了name参数,Django会把这个元组当成完整的组名来创建,所以才会生成一个名称为('manager', 'employee')的组,而不是两个独立的组。
修改方法很简单,只需要遍历组名列表,逐个调用get_or_create即可:
# autocreate basic employee groups when new company is created @receiver(post_save, sender=Tenant) def create_basic_group(sender, created, **kwargs): if created: # 定义需要创建的组名列表 group_names = ['manager', 'employee'] # 遍历列表,逐个创建或获取对应的组 for name in group_names: Group.objects.get_or_create(name=name)
关键修改点
- 用列表
['manager', 'employee']存储需要创建的组名,避免直接把元组赋值给name参数 - 通过for循环遍历列表,对每个组名单独执行
get_or_create操作,确保每个组都会被独立创建
内容的提问来源于stack exchange,提问作者Finn
相关产品推荐
相关产品推荐

