【发布时间】:2014-04-26 07:21:25
【问题描述】:
在我的所有模型中,我都有一个 get_absolute_url() 方法,如下所示,但使用 django-debug-toolbar 我发现它需要很多 SQL 查询。
我的对象是树形结构相关的,所以一个级别3的对象只能通过级别2知道它与哪个级别的对象相关。如何避免这么多SQL查询?通过其他对象关联对象是不好的做法吗?我是否必须在我的 3 级模型中将 1 级 slug 和 2 级 slug 保存为 CharFields?
@models.permalink
def get_absolute_url(self):
return ('url_alias', None, {'level1': self.level2.level1.slug, 'level2': self.level2.slug, 'level3': self.slug})
【问题讨论】:
-
避免使用此查询访问数据库的一种方法是使用缓存框架
标签: sql django django-models django-database django-debug-toolbar