# HG changeset patch # User neko259 # Date 2016-01-01 13:31:19 # Node ID e96568cb306e344915c27beb20622f5ab5b51b17 # Parent 2337e9d639eb4a0eb7836375661bfc7a9a10d788 Speed up getting post URL and made it work when OP is just created diff --git a/boards/models/post/__init__.py b/boards/models/post/__init__.py --- a/boards/models/post/__init__.py +++ b/boards/models/post/__init__.py @@ -152,9 +152,10 @@ class Post(models.Model, Viewable): url = self.url if url is None: - opening_id = thread.get_opening_post_id() + opening = self.is_opening() + opening_id = self.id if opening else thread.get_opening_post_id() url = reverse('thread', kwargs={'post_id': opening_id}) - if self.id != opening_id: + if not opening: url += '#' + str(self.id) return url @@ -292,8 +293,7 @@ class Post(models.Model, Viewable): super().save(force_insert, force_update, using, update_fields) - # Post save triggers - if new_post: + if self.url is None: self.build_url() self._connect_replies() diff --git a/boards/utils.py b/boards/utils.py --- a/boards/utils.py +++ b/boards/utils.py @@ -100,7 +100,8 @@ def cached_result(key_method=None): result = persisted_result else: result = function(obj, *args, **kwargs) - cache.set(cache_key, result) + if result is not None: + cache.set(cache_key, result) return result