2012-04-10 101 views
1

我在Django創建一個簡單的項目,以進一步我的它和Python的知識,基本上只是將存儲書籤和標籤,都將有看法,而且會有3種型號:
標籤
書籤
Bookmark_Tag (關係)Django項目/應用程序佈局 - 正確的方式?

我閱讀了django文檔中的「Projects vs Apps」面板,但我仍然不確定如何佈置它,現在它都在一個書籤應用程序中,應該有一個單獨的應用程序對於書籤和一個單獨的標籤應用程序,如果是這樣,關係模型在哪裏生活?

謝謝!

回答

5

不,你不需要爲每個應用程序單獨的應用程序。他們密切相關,聽起來像他們一起定義你的應用程序,而不是分開。如果以後,您爲網站添加了另一個功能,該功能使用相同的數據庫和設置,但與當前應用程序沒有太多共享,這將是同一項目中的另一個應用程序。

請參閱Django project models.py versus app models.pyDjango: "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文檔以獲取更多信息。