Django Signal多个对象创建

时间:2018-02-05 07:57:06

标签: python django

我有一个信号发送给带有对象的函数x

# It easier and quicker then to do a complex update procedure. 
def x(obj):
   Element.objects.filter(id=obj.id).delete()

   if obj.is_active:
     Element.objects.create(**new_element(object))


@receiver(post_save, sender=Object)
@receiver(post_delete, sender=Object)
def update_element_receiver(sender, instance, **kwargs):
    x(instance.object)

如果有多个用户使用相同的ID发送此信号,则该函数会在创建步骤中引发IntegrityError

错误为duplicate key value violates unique constraint "app_object_pkey" DETAIL: Key (id)=(163497) already exists.

我在一次交易中尝试但没有帮助。

数据库是PostgreSQL 9.6 Django 1.8.x

防止此错误并确保元素对象存在的最佳方法是什么?

0 个答案:

没有答案