django orm不与数据库交互(标题名称未显示在queryset中)

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

我完全不熟悉编程,我对每一个计算机科学术语都不是那么好,无论如何,在这个Django教程中,我正在学习创建一个博客网站。现在,我们正处于使用Django ORM与数据库交互的位置。我正在跟踪每一步,我在查询集中打了一堵墙,项目名称没有出现,这是在我之后

def __str__(self):
return self.title

我打字时得到的输出

 Narticle.objects.all() is 
queryset Narticle:Narticle object(1) instead of 
<queryset [<Narticle: 'hello world']>

我的narticle模型是

from django.db import models


class Narticle(models.Model):
  title= models.CharField(max_length=100)
  slug= models.SlugField()
  body= models.TextField(max_length= 100)
  date=models.DateTimeField(auto_now_add= True)

我在命令行中输入以下内容:

from narticle.model import Narticle

我输入了Narticle,我得到了

<class 'narticle.models.Narticle' >

然后我输入以下内容

Narticle.objects.all()

我得到了

<queryset[]>

然后我打字

narticle= Narticle()

然后

narticle

这给了我

Narticle: Narticle object(none)

然后我打字

narticle.title = "hello world"

接下来是

Narticle.objects.all()

哪个给了我

< queryset [<Narticle: Nartice object (1)>]>

我输入了narticle.save()

然后我退出命令行,然后在我输入的narticle的models.py中

def __str__(self):
   return self.title

然后我回到命令行并重复导入Narticle的过程

然后我键入Narticle.objects.all()

这给了我

< queryset [<Narticle: Nartice object (1)>]>

代替

 <queryset [<Narticle: 'hello world']>

哦,为什么这个单词“无”,然后(1),当我像这样做一个条目

<Narticle: Narticle object (none)> 

或者如果是参赛作品

<Narticle: Narticle object (1)>

代替

 <Narticle: Narticle object>

该程序之前没有运行,当我使用迁移时它工作...以防万一你想知道...再次感谢花时间看我的代码

django
1个回答
0
投票

您需要添加一个函数,告诉类在打印对象时使用哪些属性。这有时称为toString函数,因为它告诉计算机如何将可以包含许多部分的对象转换为单个字符串。在python中,有两个内置的toString方法可以在任何类中覆盖,以定义如何打印对象:__repr__和__str__。这个差异对你的问题并不重要。简单的答案是将其中一个添加到类定义中,如下所示。

from django.db import models


class Narticle(models.Model):
  title= models.CharField(max_length=100)
  slug= models.SlugField()
  body= models.TextField(max_length= 100)
  date=models.DateTimeField(auto_now_add= True)

  def __str__(self):
      return self.title
© www.soinside.com 2019 - 2024. All rights reserved.