Django ORM ManyToManyField CRUD

2,081 阅读1分钟

MedusaSorcerer的博客


Django 中使用 ManyToManyField 字段对应多对多的关系映射, 实现 CRUD 改怎么处理呢?

模型

class Medusa(models.Model):
    key = models.ManyToManyField()
    
    ...

查询所有外键

Medusa.objects.filter(key="xxx").first().key.all()

删除所有外键

Medusa.objects.filter(key="xxx").first().key.clear()

删除指定外键

# 删除外键 ID 是 1,2 的数据
Medusa.objects.filter(key="xxx").first().key.remove(1, 2)

修改外键(类似于先清空再添加)

Medusa.objects.filter(key="xxx").first().key.set([1, 2, 3])

删除外键对象

Medusa.objects.filter(key="xxx").first().key.delete()



偷偷告诉你, 这种多对多的外键, 在实际应用中非常方便~