如何解决文章和用户在Django Admin中的评论链接

问题描述 投票:0回答:1

我正在尝试将每个评论链接到帖子和用户名

我用以下models.py进行了注释的逻辑>

class Comment(models.Model):
    post = models.ForeignKey(
        Post, on_delete=models.CASCADE, null=True, blank=True)
    user = models.ForeignKey(
        User, on_delete=models.CASCADE, null=True, blank=True)
    content = models.TextField(max_length=160)

    def __str__(self):
        return self.content

现在评论正在运行,我想将评论部分链接到管理员中的帖子和评论用户,因此我使用了以下models.py

class Comment(models.Model):
    post = models.ForeignKey(
        Post, on_delete=models.CASCADE, null=True, blank=True)
    user = models.ForeignKey(
        User, on_delete=models.CASCADE, null=True, blank=True)
    content = models.TextField(max_length=160)


    def __str__(self):
        return '{}-{}'.format(self.post.title, str(self.user.username)) <----Error line

返回哪个

AttributeError at /admin/score/comment/ 
'NoneType' object has no attribute 'title'
Exception Type: AttributeError
Exception Value:    
'NoneType' object has no attribute 'title'

什么应该解决此问题我还使用了以下无效的方法

    def __str__(self):
       return '%s %s' % (self.post.title, self.user.username)

[我正在尝试将每个评论链接到帖子和用户名,我使用以下models.py类Comment(models.Model)进行了评论的逻辑:post = models.ForeignKey(...

python django django-models
1个回答
0
投票

似乎至少创建了一个Comment实例,它没有发布条目(您可以通过null=True, blank=True允许输入)。因此,self.post.title尝试访问title的属性None,从而引起您看到的错误。您可以设置null=False,这将在尝试生成无帖子的注释时引发错误。

© www.soinside.com 2019 - 2024. All rights reserved.