参考以下bulk_create
查询:
objs = [
Message(
recipient_number=e.mobile,
content=content,
sender=e.contact_owner,
billee=user,
sender_name=sender,
gateway=gateway,
)
for e in query
]
# Send messages to DB
Message.objects.bulk_create(objs)
我的问题:
我必须使用 bulk_create (出于性能原因)。但是我需要调用instance.send(gateway)
创建的每个对象。
使用批量创建我似乎无法做到这一点,因为 PK 不一定可用于post_save
信号,这意味着这不起作用....
@receiver(post_save, sender=Message)
def my_post_save_handler(sender, instance, **kwargs):
instance.send(instance.gateway)
post_save.connect(my_post_save_handler, sender=Message)
所以我尝试了其他一些类似的事情......
objs = [
Message(
etc...
).send(gateway)
for e in query
]
再一次,这行不通。
这个问题让我有点生气,这很简单,那么我有什么选择?
我不会使用 create,在插入数百万个对象时必须使用 bulk_create!
谢谢你。:)