Python 键入对象';邮政';没有属性';slug';,如何从其他模型中使用它

Python 键入对象';邮政';没有属性';slug';,如何从其他模型中使用它,python,django,Python,Django,我的情况是我需要修改我的get_absolute_url。我会用密码解释我的情况 class Post(models.Model): slug = models.CharField(max_length=255, unique=True) def get_absolute_url(self): return reverse("post", kwargs={"slug": self.slug}) 我在post.html中有注释,所以对于注释获取绝对url,我

我的情况是我需要修改我的get_absolute_url。我会用密码解释我的情况

class Post(models.Model):

    slug = models.CharField(max_length=255, unique=True)


    def get_absolute_url(self):
        return reverse("post", kwargs={"slug": self.slug})
我在post.html中有注释,所以对于注释获取绝对url,我希望它与post获取绝对url的页面相同。我该怎么做

class Comment(models.Model):
    user = models.ForeignKey(MyProfile)
    parent = models.ForeignKey("self", null=True, blank=True)
    path = models.CharField(max_length=350)
    post = models.ForeignKey(Post, null=True, blank=True, related_name="commented_post")


    def get_absolute_url(self):
        return reverse("post", kwargs={"slug": Post.slug})
我这样做的原因是,以后我需要

target_url = self.target_object.get_absolute_url()
评论我需要得到绝对的网址

reverse("post", kwargs={"slug": self.post.slug})
或者更好:

class Comment(models.Model):
    ...

    def get_absolute_url(self):
        return self.post.get_absolute_url()
这引用了
Post
类中的
CharField
实例。这与评论所涉及的特定帖子无关

相反,请尝试以下方法:

self.post.slug

您只需按如下方式访问self.post.get\u absolute\u url即可:

def get_absolute_url(self):
    return self.post.get_absolute_url()
但是,我建议从
post
定义中删除
null=True,blank=True
(除非您计划有与任何post无关的注释)。这将确保
self.post
存在

def get_absolute_url(self):
    return self.post.get_absolute_url()