-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Labels
Description
Description
The Post.get_absolute_url() method in src/blog/models.py references self.slug, but the Post model has no slug field defined. Calling this method on any Post instance raises an AttributeError.
Location
File: src/blog/models.py
Class: Post
Method: get_absolute_url()
Branch: develop
Current Code
class Post(TimeStampedModel):
id = models.BigAutoField(primary_key=True)
title = models.CharField(max_length=200)
status = models.CharField(...)
author = models.ForeignKey(...)
body = models.TextField()
categories = models.ManyToManyField(...)
images = models.ManyToManyField(...)
# No 'slug' field!
def get_absolute_url(self):
return f"/memories/{self.slug}/" # AttributeError: 'Post' object has no attribute 'slug'Problem
The Post model does not define a slug field, but get_absolute_url() uses self.slug. Any code (templates, admin, sitemaps) that calls post.get_absolute_url() will raise:
AttributeError: 'Post' object has no attribute 'slug'
Suggested Fix
Either add a slug field to the Post model:
slug = models.SlugField(unique=True, max_length=200)Or change get_absolute_url() to use the id field:
def get_absolute_url(self):
return f"/memories/{self.id}/"Severity
High — Any call to get_absolute_url() on a Post instance raises AttributeError.
Reactions are currently unavailable