缩短Python Django数据库查询

问题描述 投票:0回答:1

我们在EU模型之间有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()

这段代码可以缩短/简化吗?

python django database
1个回答
3
投票

你可以这样做:

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定义。

看到:

https://docs.djangoproject.com/en/2.0/ref/models/fields/#django.db.models.ManyToManyField.symmetrical

© www.soinside.com 2019 - 2024. All rights reserved.