我正在阅读并试图理解django文档,所以我有一个合乎逻辑的问题。
有我的models.py
文件
from django.db import models
# Create your models here.
class Blog(models.Model):
name = models.CharField(max_length=255)
tagline = models.TextField()
def __str__(self):
return self.name
class Author(models.Model):
name = models.CharField(max_length=255)
email = models.EmailField()
def __str__(self):
return self.name
class Post(models.Model):
blog = models.ForeignKey(Blog)
headline = models.CharField(max_length=255)
body_text = models.TextField()
pub_date = models.DateField()
mod_date = models.DateField()
authors = models.ManyToManyField(Author)
n_comments = models.IntegerField()
n_pingbacks = models.IntegerField()
rating = models.IntegerField()
def __str__(self):
return self.headline
在这里,每个类中的每个__str__
函数都在做什么?
我需要这些功能的原因是什么?
这会覆盖这个类的对象的默认名称,类似于
Auther:object
,这不是很有帮助。重写它会给对象提供一个更人性化的名称,如Auther.name
你创建了博客模型。迁移之后,Django将在数据库中创建一个包含“name”和“tagline”列的表。 如果您想与数据库和模型交互,例如创建模型的实例并保存它或从数据库检索模型
会派上用场的。通过以下方式打开项目根文件夹中的python交互式shell:
那么
此外,当您查看管理面板中的模型时,您将看到列出了具有name属性的对象。
问题是,如果没有添加该函数,return将如下所示:
所以你不会知道那些东西是什么。更好的识别这些对象的方法是通过将其设置为名称的属性之一检索它们。这样您将得到如下结果:
如果你想测试一下:
相关问题 更多 >
编程相关推荐