Django admin:__str__在添加用户

时间:2016-04-30 07:17:50

标签: python django

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

1 个答案:

答案 0 :(得分:1)

您可能正在返回一个长整数,例如模型self.id。在这种情况下,您需要格式化它:

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

或者

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

通常首选Unicode,django负责实施__str__。但是你可以用类似的方式实现__str__