0

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

我想在我的管理界面中更改这些元素的设置,所以我有它们的模型。

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

4

3 回答 3

1

您可以使用上下文处理器将它们添加到上下文中并使用简单的缓存机制,这样您就不必每次都访问数据库,例如http://eflorenzano.com/blog/2008/11/28/drop-死简单的django缓存/

于 2012-07-30T19:51:49.817 回答
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页眉、页脚等字段的模型,而不是每个模型都单独的模型。

于 2012-07-30T19:52:11.700 回答
-1

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

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

于 2012-07-30T19:51:11.533 回答