gpt4 book ai didi

django - 有什么方法可以通过查询集更新 ManyToMany 字段?

转载 作者:行者123 更新时间:2023-12-04 13:18:01 26 4
gpt4 key购买 nike

假设我有一个对象:

survey = Survey.objects.all().first()

我想在它和一组对象之间创建一种关系:
respondents = Respondent.objects.all()

for r in respondents:
r.eligible_for.add(survey)

哪里 eligible_forRespondent 中的 M2M 字段模型。

有什么办法可以一次性完成,还是需要遍历查询集?

模型.py
class Questionnaire(models.Model):
label = models.CharField(max_length=48)
organization = models.ForeignKey('Home.Organization', on_delete=models.PROTECT, null=True)

class Respondent(models.Model):
user = models.OneToOneField('Home.ListenUser', on_delete=models.CASCADE)
organization = models.ForeignKey('Home.Organization', on_delete=models.PROTECT)
eligible_for = models.ManyToManyField('Questionnaire', related_name='eligible_users', blank=True)

最佳答案

.add(..) 可以接受可变数量的项目,并且通常会批量添加这些项目。

因此,您可以添加所有 r与:

survey.eligible_users.add(*respondents)

因此,我们在这里添加 respondents到相反的关系。注意 * 前面的星号 ( respondents )这将因此执行可迭代的解包。

关于django - 有什么方法可以通过查询集更新 ManyToMany 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58017596/

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