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 | 'The Python Journel') p1 = Publication(title = |
实例化 Article
,与 Publicaton
联系起来
1 | "Django let's you build Web apps easily") a1 = Article(headline = |
这里把前面实例化的三个 Publication
全部加到 a2 中了
1 | 'headlinde = "NASA use Python") a2 = Article( |
重复添加也没有问题
1 | a.publication.add(p3) |
实例化 Article
的同时添加 Publication
1 | "Highlings for Children") new_publication = a2.publication.create(title = |
查看每个 Article
对应的 Publication
1 | all() a1.publications. |
也可通过 Publication
关联的 Article
查看,QuerySet
对象
1 | all() p2.article_set. |
然后就是各种 API,增删改查,没什么多说的,摸索两下就知道怎么用了
1 | filter(id = 1) Article.objects. |