模型:
class Province(models.Model):
user = models.ManyToManyField(User, blank=True)
name = models.CharField(max_length=30, unique=True)
class City(models.Model):
name = models.CharField(max_length=100, unique=True)
slug = models.SlugField(max_length=100, editable=False, unique=False)
ownership = models.ManyToManyField(User, through='UserCity')
class UserCity(models.Model):
user = models.ForeignKey(User)
province = models.ForeignKey(Province)
city = models.ForeignKey(City)
class District(models.Model):
name = models.CharField(max_length=100, unique=True)
slug = models.SlugField(max_length=100, unique=True, editable=False)
ownership = models.ManyToManyField(User, through='UserDistrict')
class UserDistrict(models.Model):
user = models.ForeignKey(User)
province = models.ForeignKey(Province)
city = models.ForeignKey(City)
district = models.ForeignKey(District)
当我知道 user_id 和 Province_id 时,如何删除关系?如果我使用 delete() 方法,它也会删除省,我想避免它。我在任何地方都找不到如何删除 m2m 字段中的 1 个特定关系。
最佳答案
在您的 ManyToMany 上使用 remove 方法经理。
Province.objects.get(id=3).user.remove(user_id)
如果您愿意,也可以直接访问直通表:
Province.user.through.objects.get(province__id=3, user__id=4).delete()
关于django - 如何仅删除 m2m 关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5247654/