嗨,我正在按照Django的官方指南进行编码,但是我的代码有些麻烦。
我正在使用Python shell,并且正在运行Question.objects.all()
命令,它返回以下内容:
<QuerySet [<Question: Question object (1)>, <Question: Question object (2)>]>
我正在寻找的答案是<QuerySet [<Question: What's up?>]>
答案 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或其他一些唯一条目一起使用的原因。