【发布时间】:2015-12-21 18:24:12
【问题描述】:
我有一个模型:
class student(models.Model):
First_Name = models.CharField(max_length=100,null=True)
Last_Name = models.CharField(max_length=100,null=True)
STNO = models.CharField(max_length=10,null=True)
但是在我的程序和管理面板中,我看到“学生对象”而不是姓名、身份证等
我尝试了以下代码但仍然无法正常工作
def __str__(self):
return self.First_Name
def __str__(self):
return "{0} {1}".format(self.First_Name, self.Last_Name)
【问题讨论】:
-
学生的班级名称不应该大写,字段名应该小写,这是一个通用约定。
-
如果你使用python 2,你需要定义
__unicode__而不是__str__ -
什么??? :|如果一个是大写而另一个是小写程序不起作用@PrashantShukla
-
这不是一个真正的答案,但在我在你的last question 中建议的the doc 的链接中,你也可以用
@python_2_unicode_compatible来装饰你的班级。 (另外,尝试设置__repr__方法代替/以及__str__方法) -
就 Unicode 问题而言,它通常可以工作,但如果您仍然面临同样的问题,请使用 django.utils.encoding import smart_unicode 和 return smart_unicode( self.name)