1
onefouroo OP 第一次发帖,不知道怎么缩进
|
2
xidianlz 2016-09-20 18:39:35 +08:00
看报错信息, self.user 不是 str 的
|
3
onefouroo OP @xidianlz 你好
但是我把 model 改了一下 class Student(models.Model): user = models.ForeignKey('auth.User', null=True, blank=True, verbose_name=u'学员') user_fullname = models.CharField(max_length=255) created = models.DateTimeField(auto_now_add=True) last_modified = models.DateTimeField(auto_now=True) def __unicode__(self): return self.user_fullname 报同样的错误, user_fullname 我输入的肯定是 str 但是报同样错误 |
4
Shawdon 2016-09-20 18:51:05 +08:00 1
LZ 先 google 下这个函数__unicode__,了解下它的相关信息。
你的 user_fullname 也不是一个 str ,而是 models.CharField **对象**!! |
6
saturnisbig 2016-09-20 19:00:59 +08:00 via Android
self.user 是个 foreignkey
|
7
onefouroo OP |
10
georgema1982 2016-09-21 04:28:09 +08:00
错误原因你应该已经明白了。但是我不赞同你用 str(self.user) 。最好是用 django 的 force_text
|
13
Shawdon 2016-09-22 10:30:14 +08:00
@glasslion 用过。我的意思是 “ return self.user_fullname ” 怎么会返回 unicode 。。
|
14
glasslion 2016-09-22 12:44:16 +08:00 1
@Shawdon CharField 在访问时的返回的就是 unicode
``` class CharField(Field): def to_python(self, value): if isinstance(value, six.string_types) or value is None: return value return force_text(value) ``` 原理: https://code.djangoproject.com/wiki/DevModelCreation |