gpt4 book ai didi

python - Django bulk_create 成对的一对一对象

转载 作者:行者123 更新时间:2023-12-05 07:37:15 25 4
gpt4 key购买 nike

我有一对一对一的关系,比如说:

from django.db import models
class Place(models.Model):
name = models.CharField(max_length=50)
class Restaurant(models.Model):
place = models.OneToOneField(Place, on_delete=models.CASCADE)

假设我想(在我看来)同时创建多个 Restaurant,但是这些餐厅还没有创建关联的 Place(所以我会本质上就像一次创建成对的对象)。

是否可以以这种方式使用 bulk_create(即仅使用 O(1) 查询)?

不幸的是,我坚持使用 MySQL(而不是 postgre),所以我不能简单地bulk_create Place 并访问该 ID 列表。

最佳答案

如果相应的 Place 对象已经存在,您可以遍历地点,初始化 Restaurant 对象,然后批量创建它们。

restaurants = [
Restaurant(place=place) for place in Place.objects.all()
]

Restaurant.objects.bulk_create(restaurants)

它仍然会运行访问该地点的查询,因此如果您想要 O(1) 查询,您需要使用原始 SQL。

关于python - Django bulk_create 成对的一对一对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48733414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com