Python 如何删除queryset的多对多关系?
在我的模型中,我有这样一种多对多的关系Python 如何删除queryset的多对多关系?,python,django,many-to-many,Python,Django,Many To Many,在我的模型中,我有这样一种多对多的关系 class Shift(models.Model): employees = models.ManyToManyField('account.Employee', related_name='allocated_in', blank=True) shift.employees.remove(
class Shift(models.Model):
employees = models.ManyToManyField('account.Employee',
related_name='allocated_in',
blank=True)
shift.employees.remove(employee)
假设我有一个employeeemployee
的特定实例。我可以像这样将他从单班次实例shift
中删除
class Shift(models.Model):
employees = models.ManyToManyField('account.Employee',
related_name='allocated_in',
blank=True)
shift.employees.remove(employee)
如何从Shift
查询集的每个实例中删除employee
shift_qs = Shift.objects.filter(date__gt=timezone.now().date)
我想在单个查询中从
shift\u qs
中的每个实例中删除employee
。最好不在queryset上循环 使用中间模型:
IModel = shift_qs.employees.through
IModel.objects.filter(shift__in=shift_qs, employee=employee).delete()
使用中间模型:
IModel = shift_qs.employees.through
IModel.objects.filter(shift__in=shift_qs, employee=employee).delete()