我有一些页面元素不会经常更改,并且会显示在每个页面上,例如某些adbar,页脚内容等。
我想在管理界面中更改此元素的设置,因此我有模型。
django是否有最佳实践来处理这些元素?
答案 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)
很难回答 - 你到底在问什么?
您可以在基本模板中显示这些模型。您可以使用缓存来减少数据库调用。