在我的django应用程序中,当我想在我的app.it中添加用户时会抛出错误
__str__ returned non-string (type long)
发生此错误的原因。 我也尝试使用unicode而不是str,但错误保持不变。
my 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
答案 0 :(得分:1)
您可能正在返回一个长整数,例如模型self.id
。在这种情况下,您需要格式化它:
def __unicode__(self):
return unicode(self.id)
或者
def __unicode__(self):
return u'{}'.format(self.id)
通常首选Unicode,django负责实施__str__
。但是你可以用类似的方式实现__str__
。