Performance 如何在对数据库的点击次数最少的情况下向Django reverse外键集添加多个实例?
例如,我有两种型号:Performance 如何在对数据库的点击次数最少的情况下向Django reverse外键集添加多个实例?,performance,django-models,foreign-keys,django-related-manager,Performance,Django Models,Foreign Keys,Django Related Manager,例如,我有两种型号: 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列表-- 这是作业模型实例的PK 我知道我能行-- 但这将是比我能做的更多的查询-- 它将在其中
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列表--
这是作业模型实例的PK
我知道我能行--
但这将是比我能做的更多的查询--
它将在其中解包列表并使用bulk_create。我该怎么做?谢谢。你试过了吗
person.jobs.add(*job_ids)
在我的例子中,我使用了一个过滤器查询,并有一个对象列表(与id相反)。我得到了一个类似的错误
TypeError: 'MyModel' instance expected, got [<MyModel: MyModel Object>]
TypeError:需要“MyModel”实例,获得[]
…在我加入星号之前
person.jobs.add(job_ids)
person.jobs.add(*job_ids)
TypeError: 'MyModel' instance expected, got [<MyModel: MyModel Object>]