2016-04-30 49 views
-1

在我的Django应用程序时,我想在我的app.it添加用户抛出一个错误Django管理:为什么这个错误发生在添加一个新用户

__str__ returned non-string (type long) 

__str__返回非字符串(long类型) 。 我也尝试unicode而不是str,但错误保持不变。

我的models.py

class Company(models.Model): 
    c_id=models.IntegerField(default=0,primary_key=True) 
    u_id=models.OneToOneField(Consultants) 
    comany_name=models.CharField(max_length=255,blank=True,null=True) 
    comany_email=models.EmailField(max_length=255,blank=True,null=True) 
    last_login=models.DateTimeField(default=datetime.now,blank=True,null=True) 
    def __unicode__(self): 
     return u'{}'.format(self.c_id) 

这个错误出现在加入公司

例外位置

/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py in force_text, line 94 
+3

显示此模型的'__str__'方法,请 –

回答

1

也许,你是返回一个长整型的时间,例如像,型号self.id。在这种情况下,你需要对其进行格式化:

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

或者

def __unicode__(self): 
    return u'{}'.format(self.id) 

的Unicode通常是首选,Django的需要实施__str__的照顾。但是你可以用类似的方式实现__str__

+0

这不起作用 –

+0

您正在使用哪个python版本?你是否得到了同样的错误? – JoseKilo

+0

python版本2.7 –

相关问题