Many-to-many relationalships
这篇是 Django 文档中的一些例子,在 tutorial 中没有全部展示的东西看例子很容易就明白了,这里我就大概翻译一下,也作为自己的一个笔记。
models.py
多对多关系,是在模型中用 ManyToManyField 定义。
1 | from django.db import models |
Article 是一张表,有 headline 和 publication 两个字段,publication 字段对应 Publication 这张表,多对多关系,One Article can have mutiple Publication and one Publication can have Mutiple Publication。下面就是演示 python manage.py shell 中的 API 用法:
python manage.py shell API 用法
实例化 Publication 对象,save() 存到数据库中
1 | p1 = Publication(title = 'The Python Journel') |
实例化 Article,与 Publicaton 联系起来
1 | a1 = Article(headline = "Django let's you build Web apps easily") |
这里把前面实例化的三个 Publication 全部加到 a2 中了
1 | a2 = Article('headlinde = "NASA use Python") |
重复添加也没有问题
1 | a.publication.add(p3) |
实例化 Article 的同时添加 Publication
1 | new_publication = a2.publication.create(title = "Highlings for Children") |
查看每个 Article 对应的 Publication
1 | a1.publications.all() |
也可通过 Publication 关联的 Article 查看,QuerySet 对象
1 | p2.article_set.all() |
然后就是各种 API,增删改查,没什么多说的,摸索两下就知道怎么用了
1 | Article.objects.filter(id = 1) |