0

当我在 ssh 服务器上运行 django 项目时,出现以下错误

coercing to Unicode: need string or buffer, User found.

这是我的 models.py 文件

class Employee(models.Model):
user = models.OneToOneField(User)
address = models.CharField(max_length=200, blank=True)
name = models.CharField(max_length=200, blank=True)
designation = models.CharField(max_length=20, blank=True, choices=
DESIGNATION_CHOICES)
project = models.CharField(max_length=50, blank=True)
task = models.CharField(max_length=50, blank=True)
image = models.ImageField(upload_to="media/images/", blank=True)

def __unicode__(self):
    return self.user

这里有什么错误?

4

1 回答 1

2

正如错误已经告诉您的那样, AOneToOneField返回instance无法强制使用 unicode 的用户。一些可能的解决方案:

def __unicode__(self):
    return str(self.user)  # mind you this isn't gonna be a very useful

def __unicode__(self):
    return self.user.id

def __unicode__(self):
    return self.user.get_full_name()

def __unicode__(self):
    return self.user.username

def __unicode__(self):
    return self.user.get_full_name() or self.user.username

基本上可以返回用户的任何方法或属性

于 2013-05-02T08:23:34.093 回答