「Django 多対多関係の実装」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==Django 多対多関係の実装== [Django] ===models.ManyToManyField を利用したモデル=== ====定義==== *ブックマークは複数のタグを持つ、…」) |
|||
(同じ利用者による、間の2版が非表示) | |||
1行目: | 1行目: | ||
− | ==Django 多対多関係の実装== | + | ==[[Django 多対多関係の実装]]== |
− | [Django] | + | [[Django]] | |
===models.ManyToManyField を利用したモデル=== | ===models.ManyToManyField を利用したモデル=== |
2020年2月16日 (日) 04:24時点における最新版
Django 多対多関係の実装
Django |
models.ManyToManyField を利用したモデル
定義
- ブックマークは複数のタグを持つ、タグは複数のブックマークにつけられる
class Tag(models.Model): name = models.CharField(max_length=100, db_index=True, unique=True) class Bookmark(models.Model): page = models.ForeignKey('Page') tags = models.ManyToManyField('Tag',blank=True)
登録
- それぞれを一旦登録してから(IDが振られてから)でないと、関連が登録できない
tag_names = request.POST.getlist("tags[]") tags = [] for tag_name in tag_names: tag = Tag(name=tag_name) tag.save() tags.append(tag) bookmark = Bookmark() bookmark.save() for tag in tags: bookmark.tags.add(tag)
© 2006 矢木浩人