【发布时间】:2015-11-08 22:43:55
【问题描述】:
我是 django 和 sql 的新手。我正在阅读的教程将def __unicode__(self) 放在每个模型类上?这是对documentation的引用,但即使阅读后我仍然不明白目的是什么?
class Project(models.Model):
name = models.CharField(max_length=300)
def __unicode__(self):
return self.name
class Task(models.Model):
description = models.CharField(max_length=300)
project = models.ForeignKey(Project)
def __unicode__(self):
return self.description
【问题讨论】:
-
您对文档中的描述有什么不明白的地方?对我来说似乎很清楚。
-
因此,无论您在模板中使用
unicode(instance)还是{{ instance }},都会调用该方法,因为仅使用__str__无法生成Unicode。您对具体的哪些部分有问题? -
@MartijnPieters 我只是不知道模型如何存储数据。我猜def将存储的模型数据转换为前端模板的unicode?span>
-
@MatthewHarwood:当您需要对象的 unicode 字符串表示时,您可以使用
unicode(object)并调用该方法。它的职责是简单地返回一个很好地代表该对象的unicode值。例如,它用于管理界面。