1

我正在 Django 中创建一个简单的项目,以进一步了解它和 Python,基本上只是存储书签和标签,两者都有视图,并且会有 3 个模型:
Tag
Bookmark
Bookmark_Tag(关系)

我阅读了 django 文档中的“项目与应用程序”面板,但我仍然不确定如何布置它,现在它都在一个书签应用程序中,是否应该有一个单独的书签应用程序和一个单独的标签应用程序,如果是这样,关系模型在哪里?

谢谢!

4

1 回答 1

5

不,您不需要为每个单独的应用程序。它们密切相关,听起来它们共同定义了您的应用程序,而不是单独定义。如果稍后,您向您的站点添加了另一个功能,该功能使用相同的数据库和设置,但与您当前的应用程序没有太多共享,这将是同一项目中的另一个应用程序。

请参阅本网站上的Django 项目 models.py 与应用程序 models.pyDjango:“项目”与“应用程序”以及Django 技巧:布置应用程序以获取更多指南。

如果Bookmarks 和Tags 具有多对多关系,并且您需要向该关系添加额外的字段(除了id相关对象的 s 之外),您可以使用 aManyToManyField并设置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 文档。

于 2012-04-10T18:21:51.717 回答