「Django 多対多関係の実装」の版間の差分
ナビゲーションに移動
検索に移動
| 1行目: | 1行目: | ||
==Django 多対多関係の実装== | ==Django 多対多関係の実装== | ||
| − | [[Django]] | + | [[Django]] | |
===models.ManyToManyField を利用したモデル=== | ===models.ManyToManyField を利用したモデル=== | ||
2020年2月15日 (土) 08:35時点における版
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 矢木浩人