我在Django創建一個簡單的項目,以進一步我的它和Python的知識,基本上只是將存儲書籤和標籤,都將有看法,而且會有3種型號:
標籤
書籤
Bookmark_Tag (關係)Django項目/應用程序佈局 - 正確的方式?
我閱讀了django文檔中的「Projects vs Apps」面板,但我仍然不確定如何佈置它,現在它都在一個書籤應用程序中,應該有一個單獨的應用程序對於書籤和一個單獨的標籤應用程序,如果是這樣,關係模型在哪裏生活?
謝謝!
我在Django創建一個簡單的項目,以進一步我的它和Python的知識,基本上只是將存儲書籤和標籤,都將有看法,而且會有3種型號:
標籤
書籤
Bookmark_Tag (關係)Django項目/應用程序佈局 - 正確的方式?
我閱讀了django文檔中的「Projects vs Apps」面板,但我仍然不確定如何佈置它,現在它都在一個書籤應用程序中,應該有一個單獨的應用程序對於書籤和一個單獨的標籤應用程序,如果是這樣,關係模型在哪裏生活?
謝謝!
不,你不需要爲每個應用程序單獨的應用程序。他們密切相關,聽起來像他們一起定義你的應用程序,而不是分開。如果以後,您爲網站添加了另一個功能,該功能使用相同的數據庫和設置,但與當前應用程序沒有太多共享,這將是同一項目中的另一個應用程序。
請參閱Django project models.py versus app models.py和Django: "projects" vs "apps"本網站以及Django tips: laying out an application的一些更多的指導方針。
如果Bookmark
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
查看關於Extra fields on many-to-many relationships的Django文檔以獲取更多信息。