2012-01-09 55 views
0

根據docu這是相當直截了當:django網站框架:哪些模型應該與某個網站相關聯(國外,manytomany)?

class Article(models.Model): 
    headline = models.CharField(max_length=200) 
    # ... 
    site = models.ForeignKey(Site) 

,但如果我有一個額外的型號是什麼?即:

class ArticleAttachment(models.Model): 
    file = models.FileField(upload_to="foo/bar") 
    # ... 

ArticleAttachment()已經與Article(已經與一個站點關聯)相關聯。我是否應該將該外鍵添加到該網站?如果是/否,爲什麼?

(性能不成問題。)

thx。

回答

2

例如,如果要顯示給定的site的所有文章附件,添加冗餘外鍵只會有助於提高性能。否則(尤其是如果你根本不關心性能),它並不能真正幫助你,它只是引入了更多的「維護」工作。您可以使用

attachment.article.site 

和過濾器使用

.filter(article__site="...") 

因此,如果沒有其他複雜的查詢,只有這個附加的數據庫領域的工作始終可以訪問附件的site,我會放棄它。

+0

+1但是燈具是什麼,django-admin? – klemens 2012-01-09 13:56:35