【发布时间】:2021-06-20 10:38:22
【问题描述】:
我们有一个学生和一个班级的多对多关系,一个学生可以参加多个班级,一个班级可以被多个学生参加。
class Class(models.Model):
name = models.CharField(null=False, max_length=128)
class Student(models.Model):
first_name = models.CharField(null=False, max_length=64)
classes = ManyToManyField(Class)
将某个对象或整个QueryList(在我们的例子中:名称中包含Biology的所有类)添加到另一个@中每个对象的ManyToManyField的最快方法是什么? 987654324@(在我们的例子中:所有名字是 Linus 的学生)?
我目前的做法是:
biology_classes = Class.objects.filter(name__contains='Biology')
linuses = Student.object.filter(first_name='Linus')
for linus in linuses:
linus.classes.add(*biology_classes)
我猜这会影响每个学生的数据库。我想知道是否有某种方法可以“一次”完成所有操作。也许看起来像这样:
linuses.classes.add(*biology_classes) # (this does not work)
【问题讨论】:
标签: django django-models django-queryset django-orm django-related-manager