いいえ、それぞれに個別のアプリは必要ありません。それらは密接に関連しており、別々にではなく、一緒にアプリを定義しているように聞こえます。後で、同じデータベースと設定を使用しているが、現在のアプリとあまり共有していない別の機能をサイトに追加した場合、それは同じプロジェクト内の別のアプリになります。
このサイトのDjangoプロジェクトmodels.pyとappmodels.pyおよびDjango :「projects」と「apps」 、およびDjangoのヒント:アプリケーションのレイアウトを参照してください。
Bookmarksとsに多対Tag多の関係があり、その関係にフィールドを追加する必要がある場合(id関連するオブジェクトのsだけでなく)、を使用してテーブルManyToManyFieldを設定できます。through
class Bookmark(models.Model):
# whatever fields you need on Bookmark
tags = models.ManyToManyField('Tag', through = 'BookmarkTag')
class Tag(models.Model):
# whatever fields you need on Tag
pass
class BookmarkTag(models.Model):
bookmark = models.ForeignKey(Bookmark)
tag = models.ForeignKey(Tag)
# whatever additional fields you need on the relationship
詳細については、多対多の関係に関する追加フィールドに関するDjangoのドキュメントを参照してください。