Python 键入对象';邮政';没有属性';slug';,如何从其他模型中使用它
我的情况是我需要修改我的get_absolute_url。我会用密码解释我的情况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,我
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()