Question.objects.all()没有返回预期的结果

时间:2019-08-10 00:23:08

标签: python django

嗨,我正在按照Django的官方指南进行编码,但是我的代码有些麻烦。

我正在使用Python shell,并且正在运行Question.objects.all()命令,它返回以下内容:

<QuerySet [<Question: Question object (1)>, <Question: Question object (2)>]>

我正在寻找的答案是<QuerySet [<Question: What's up?>]>

3 个答案:

答案 0 :(得分:0)

  

我正在寻找的答案是<QuerySet [<Question: What's up?>]>

如果您的数据库有两个Question对象,那么Question.objects.all()将永远不会只返回一个结果。 (您真的是说您只想要一个结果吗?)

默认情况下,打印模型对象时,它将打印模型主键。如果您想要不同的行为,那么正如Avinash所评论的那样,您需要重写Question类中的__str__方法,如下所示:

class Question(models.Model):

    # fields go here

    def __str__(self):
        return self.text # or whatever field(s) you want

答案 1 :(得分:0)

定义模型时

[ ]

因此您需要编写这样的 str 函数,以便在运行查询时,对象将按照您的要求显示。

答案 2 :(得分:0)

如果只想要一个结果,也可以使用get:

Question.objects.get(text='I want this text')

请注意,如果有多个符合此条件的条目将引发错误。这就是为什么get通常与id或其他一些唯一条目一起使用的原因。