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 @@ -115,12 +115,11 @@ class PostManager(models.Manager): thread.bump() thread.save() + post.build_url() post.connect_replies() post.connect_threads(threads) post.connect_notifications() - post.build_url() - return post def delete_posts_by_ip(self, ip): @@ -229,7 +228,15 @@ class Post(models.Model, Viewable): return self.get_thread().get_opening_post_id() == self.id def get_absolute_url(self): - return self.url + if self.url: + return self.url + else: + opening_id = self.get_thread().get_opening_post_id() + post_url = reverse('thread', kwargs={'post_id': opening_id}) + if self.id != opening_id: + post_url += '#' + str(self.id) + return post_url + def get_thread(self): return self.thread @@ -341,12 +348,7 @@ class Post(models.Model, Viewable): pass def build_url(self): - thread = self.get_thread() - opening_id = thread.get_opening_post_id() - post_url = reverse('thread', kwargs={'post_id': opening_id}) - if self.id != opening_id: - post_url += '#' + str(self.id) - self.url = post_url + self.url = self.get_absolute_url() self.save(update_fields=['url']) def save(self, force_insert=False, force_update=False, using=None,