Django 多対多関係の実装
ナビゲーションに移動
検索に移動
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 矢木浩人