Tag: 灯具

如何防止与django post_save信号码冲突?

在我的应用程序中,我想在新用户注册时在某些表中创build条目。 例如,我想创build一个用户configuration文件,然后引用他们的公司和其他一些logging。 我用post_save信号实现了这个: def callback_create_profile(sender, **kwargs): # check if we are creating a new User if kwargs.get('created', True): user = kwargs.get('instance') company = Company.objects.create(name="My Company") employee = Employee.objects.create(company=company, name_first=user.first_name, name_last=user.last_name) profile = UserProfile.objects.create(user=user, employee=employee, partner=partner) # Register the callback post_save.connect(callback_create_profile, sender=User, dispatch_uid="core.models") 运行时运行良好。 我可以使用pipe理员创build一个新的用户,其他三个表也可以通过合理的方式获得条目。 (除了user.first_name和user.last_name之外的员工,在保存的时候并没有用pipe理员的forms填写,我还是不明白为什么这样做) 问题出现在我运行我的testing套件时。 在此之前,我创build了一堆灯具来在表格中创build这些条目。 现在我收到一个错误,指出: IntegrityError: duplicate key value violates unique constraint […]