Django:“things”对象没有属性“choice”访问选项时遇到问题

2024-06-28 19:55:19 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的模型中,我定义了一个思想和评论模型。一个想法有很多评论:

class Thoughts(models.Model):
    name = models.CharField(max_length=30)
    thought = models.CharField(max_length=500)

class Comments(models.Model):
    name = models.CharField(max_length=30)
    comment = models.CharField(max_length=200)
    original_post = models.ForeignKey(Thoughts, default=0)

在我的网站上,当你去看一个想法时,我希望所有的评论都能出现。据我所知,您可以使用choice_set通过一对多关系访问属性。以下是我的观点:

^{pr2}$

在这些行中,我尝试访问与特定思想相关的所有注释,以便在模板中打印它们。在

    get_post = Thoughts.objects.get(pk=thought_num)
    comments = get_post.choice_set.all()

当我访问应该显示注释的页面时,我得到以下错误:

Exception Type: AttributeError
Exception Value:'Thoughts' object has no attribute 'choice_set'

也许我错过了什么,我不确定。我肯定是很简单的。谢谢你的时间


Tags: name模型getmodelmodels评论postlength
2条回答

检索与某个想法相关的所有评论。您可以执行以下操作:

Thoughts.objects.get(pk=thought_num).comments_set.all()

如果要覆盖默认的相关名称(“注释集”)。您可以执行以下操作: original_post = models.ForeignKey(Thoughts, default=0, related_name='choice_set')

当您创建一个ForeignKey时,默认的相关名称将成为当前类的小写名称+“_set”,因此对于您的项目应该是:

get_post = Thoughts.objects.get(pk=thought_num)
comments = get_post.comments_set.all()

或者您甚至可以创建一个自定义的相关名称,而不是默认名称:

^{pr2}$

所以你可以这样评论:

^{3}$

相关问题 更多 >