Answers:
__unicode__
做到了。您的模型应如下所示:
class SomeModel(models.Model):
def __unicode__(self):
return 'Policy: ' + self.name
在Python 3上,您需要使用__str__
:
def __str__(self):
return 'Policy: ' + self.name
使用该__str__
方法可在Python3和Django1.8上运行:
class MyModel(models.Model):
name = models.CharField(max_length=60)
def __str__(self):
return 'MyModel: {}'.format(self.name)
__unicode__
正如其他人所提到的,您看到的字符串来自方法。但是问题是,管理员在创建日志事件时会保存对象的字符串表示形式,因此,如果__unicode__
在保存日志条目后添加实现,则只有在进行一些新活动后,您才能在旧项目上看到新标题
提到的答案__str__
和__unicode__
方法是正确的。正如所陈述的文档,但是由于1.6版(我认为),你可以使用python_2_unicode_compatible
装饰商都的Python 2和Python 3:
from __future__ import unicode_literals
from django.utils.encoding import python_2_unicode_compatible
@python_2_unicode_compatible
class MyClass(models.Model):
def __str__(self):
return "Instance of my class"
您也可以在非Model
对象中使用以上内容。
通过__str__()
以Patient
这种方式向模型添加 方法:
class Patient(models.Model):
name=models.CharField(max_length=200)
#.........
def __str__(self):
return self.name
将显示患者的名称而不是对象。详情请点击这里
__unicode__
做到了。粘贴您的代码,以便我们可以找出问题所在