Django信号多个对象创建

2024-03-28 09:30:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个信号,它是用一个对象发送给函数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版

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


Tags: 对象函数idobjobjectsobject信号def