django站点框架:哪些模型应该与一个站点相关联(外国,多少)?

时间:2012-01-09 12:35:44

标签: django django-models django-sites

根据docu,这非常简单:

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()已与文章关联(已与网站关联)。我还应该将外键添加到网站吗?如果是/否,为什么?

(表现不是问题。)

THX。

1 个答案:

答案 0 :(得分:2)

如果要显示具有给定site的所有文章附件,则添加冗余外键只会有助于提高性能。否则(特别是如果你根本不关心表现),它并没有真正帮助你,它只是引入了更多"维护"工作。您始终可以使用

访问附件的site
attachment.article.site

并使用

过滤
.filter(article__site="...")

因此,如果没有其他复杂的查询只适用于这个额外的数据库字段,我会放弃它。