【问题标题】:Django :coercing to Unicode: need string or buffer, User foundDjango:强制转换为 Unicode:需要字符串或缓冲区,用户找到
【发布时间】:2013-04-26 08:23:20
【问题描述】:

当我在 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

这里的错误是什么?

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    OneToOneField 返回用户 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-11-05
      • 2012-04-12
      • 2011-07-17
      • 2011-02-07
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 2016-04-28
      • 2014-02-22
      相关资源
      最近更新 更多