gpt4 book ai didi

performance - 如何以最少的数据库命中次数将多个实例添加到 Django 反向外键集中?

转载 作者:行者123 更新时间:2023-12-02 01:57:48 25 4
gpt4 key购买 nike

例如,我有两个模型:

class Person(models.Model):
name = models.CharField(max_length=100)

class Job(models.Model):
title = models.CharField(max_length=100)
person = models.ForeignKey(Person)

我有一份工作 ID 列表——
job_ids = [1, 2, ....] 

这是作业模型实例的 pks

我知道我能做到——
for id in job_ids:
person.jobs.add(job_id)

但这比我能做的要多得多——
person.jobs.add(job_ids)

它将解压缩列表并使用bulk_create。我该怎么做呢?谢谢。

最佳答案

你有没有尝试过

person.jobs.add(*job_ids)

在我的例子中,我使用了一个过滤器查询并有一个对象列表(而不是 ID)。我收到类似的错误
TypeError: 'MyModel' instance expected, got [<MyModel: MyModel Object>]

...在我包括星号之前。

credit (another SO question)

关于performance - 如何以最少的数据库命中次数将多个实例添加到 Django 反向外键集中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18937453/

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