【发布时间】:2013-11-22 02:17:21
【问题描述】:
使用 Django 博客,我有一个看起来像这样的模板:
<a href="{{ post.get_absolute_url }}">{{ post.title }}</a>
这看起来很无害,但它最终会生成博客文章用户的另一个查找,这是我(在大多数情况下)已经知道的。不过这不是我的意思。
网址如下:
http://localhost:8000/blog/post/mark/2010/08/Aspect-Oriented-Prog/
它看起来像这样的部分原因是 URL 在某种程度上是不言自明的,并且不会随着时间而改变。
我非常好奇的是,将此 URL 与博客文章一起存储在数据库中可能会出现什么问题?如果它不应该改变,我将它存储在那里,然后获取博客,给我绝对 URL,而无需获取用户并重建 URL。
我认为我存储的部分不包括 /blog/post,但包含帖子特定信息,以便我可以这样做:
{% url blog-post blog %} 并将其粘贴在一起。
只是为了记录,是的,我可以做 selected_related,除了在我的情况下,我实际上是从我正在获取对象的活动日志中返回的:
def get_edited_object(self):
"Returns the edited object represented by this log entry"
return self.content_type.get_object_for_this_type(pk=self.object_id)
我还没有弄清楚如何添加与此相关的选择,但想知道我是否需要,因为我可以将 absolute_url 添加到对象本身。
我意识到这有点主观,但我真正需要的是有人为我为什么不应该这样做,因为它看起来简单明了,我看不出有什么理由不这样做。
p>【问题讨论】:
-
我正在使用 mysql,但不知道为什么这很重要。对具有有意义且持久的 URL 的资源进行非规范化有什么缺点?
标签: mysql django optimization