Django项目/应用程序布局-正确方式?
我正在Django中创建一个简单的项目,以加深我对it和Python的了解,基本上只是存储书签和标记,它们都有视图,并且将有3个模型:Django项目/应用程序布局-正确方式?,django,django-models,Django,Django Models,我正在Django中创建一个简单的项目,以加深我对it和Python的了解,基本上只是存储书签和标记,它们都有视图,并且将有3个模型: 标签 书签 书签标签(关系) 我阅读了django文档中的“项目与应用程序”面板,但我仍然不确定如何布局,现在它都在一个书签应用程序中,是否应该有一个单独的书签应用程序和一个单独的标签应用程序,如果是这样,关系模型在哪里? 谢谢 不,您不需要为每个应用程序单独安装应用程序。它们是密切相关的,听起来它们共同定义了你的应用程序,而不是单独定义的。如果以后,您在站点中
标签
书签
书签标签(关系) 我阅读了django文档中的“项目与应用程序”面板,但我仍然不确定如何布局,现在它都在一个书签应用程序中,是否应该有一个单独的书签应用程序和一个单独的标签应用程序,如果是这样,关系模型在哪里?
谢谢 不,您不需要为每个应用程序单独安装应用程序。它们是密切相关的,听起来它们共同定义了你的应用程序,而不是单独定义的。如果以后,您在站点中添加了另一个功能,该功能使用了相同的数据库和设置,但没有与当前应用共享太多其他功能,那么这将是同一项目中的另一个应用 有关更多指南,请参阅本网站上的和 如果
Bookmark
s和Tag
s具有多对多关系,并且需要向该关系中添加额外字段(而不仅仅是相关对象的id
s),则可以使用ManyToManyField
并通过表设置:
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文档。不,您不需要为每个应用程序单独安装应用程序。它们是密切相关的,听起来它们共同定义了你的应用程序,而不是单独定义的。如果以后,您在站点中添加了另一个功能,该功能使用了相同的数据库和设置,但没有与当前应用共享太多其他功能,那么这将是同一项目中的另一个应用
有关更多指南,请参阅本网站上的和
如果Bookmark
s和Tag
s具有多对多关系,并且需要向该关系中添加额外字段(而不仅仅是相关对象的id
s),则可以使用ManyToManyField
并通过表设置:
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文档