django中静态页面元素的最佳实践

时间:2012-07-30 19:43:42

标签: django

我有一些页面元素不会经常更改,并且会显示在每个页面上,例如某些adbar,页脚内容等。

我想在管理界面中更改此元素的设置,因此我有模型。

django是否有最佳实践来处理这些元素?

3 个答案:

答案 0 :(得分:1)

您可以使用context processor将它们添加到上下文中并使用简单的缓存机制,这样您就不必每次都点击数据库,http://eflorenzano.com/blog/2008/11/28/drop-dead-simple-django-caching/

答案 1 :(得分:1)

不是,不。您正在描述单例模式,因此您可能希望实现单例模型类型:

class SingletonModel(models.Model):
    class Meta:
        abstract = True

    def save(self, *args, **kwargs):
        self.id = 1
        super(SingletonModel, self).save(*args, **kwargs)

    def delete(self, *args, **kwargs):
        pass

这将确保从该类继承的任何模型只能拥有一个成员并且无法删除它。除此之外,我建议将所有内容组合成一个名为SiteSettings的模型,其中包含页眉,页脚等字段,而不是每个模型的单独模型。

答案 2 :(得分:-1)

很难回答 - 你到底在问什么?

您可以在基本模板中显示这些模型。您可以使用缓存来减少数据库调用。