我们在E
和U
模型之间有m2m关系:
class E(models.Model):
us = models.ManyToManyField('U', related_name='events', symmetrical=False)
class U(models.Model):
pass
现在我们要删除U的所有链接,pk = 2。
我写了这段代码:U.events.through.objects.filter(u=2).delete()
。
这段代码可以缩短/简化吗?
你可以这样做:
U.objects.get(pk=2).events.clear()
Django文档中有一些有用的例子:
https://docs.djangoproject.com/en/2.0/topics/db/examples/many_to_many/
作为旁注,你不需要symmetrical=False
来定义你的多对多。引用Django文档:
仅用于自我的ManyToManyFields定义。
看到: