django多对多关系:如何删除项目但不从相关模型中删除它们

mb5*_*089 1 django django-models

Django新手问题.我有以下型号:

class Leg(models.Model):
  drive_date = models.DateField()
  startpoint = models.CharField(max_length=50)
  endpoint = models.CharField(max_length=50)
  start_time = models.TimeField()
  riders = models.ManyToManyField(Rider, blank=True)
  drivers = models.ManyToManyField(Driver, blank=True)
  carpool = models.ForeignKey(Carpool,  blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

对于Leg的某些实例,我想从Leg模型中删除任何现有的骑手和驱动程序,但不要分别从Rider或Driver Models(未显示)中删除它们.无法弄清楚该怎么做.当我迭代:

for driver in leg.drivers.all():
    driver.delete()
Run Code Online (Sandbox Code Playgroud)

它似乎删除了我不想做的实际Driver对象.

任何帮助是极大的赞赏.谢谢!

小智 12

从关系中删除项目的正确代码是:

for driver in leg.drivers.all():
    leg.drivers.remove( driver )
Run Code Online (Sandbox Code Playgroud)