我在这样的模型中有很多对很多的关系。
class Shift(models.Model):
employees = models.ManyToManyField('account.Employee',
related_name='allocated_in',
blank=True)
说我有一个雇员employee
的特定实例。我可以这样将他从单个轮班实例shift
中删除。
shift.employees.remove(employee)
如何从employee
的查询集中的每个实例中删除Shift
?
shift_qs = Shift.objects.filter(date__gt=timezone.now().date)
我想在单个查询中从employee
的每个实例中删除shift_qs
。最好不要遍历查询集。
答案 0 :(得分:2)
使用中间模型:
IModel = shift_qs.employees.through
IModel.objects.filter(shift__in=shift_qs, employee=employee).delete()