我在django中与__unicode__()
混淆了一下。我还是个新手。
我有这段代码:
models.py
class Order(models.Model):
order_num = models.IntegerField(verbose_name="OR Number")
order_date = models.DateTimeField(auto_now_add=True,verbose_name="OR Date")
customer = models.ForeignKey(User)
def __unicode__(self):
return self.order_num
我在管理员方面注册。当我尝试添加订单时出现错误:
TypeError at /admin/store/order/add/
coercing to Unicode: need string or buffer, int found
我将在方法__unicode__(self)
上声明什么?
很明显我的田地上没有字符串。我怎样才能声明缓冲区?
或
任何人都有另一个答案..请帮助..谢谢。
答案 0 :(得分:4)
__unicode__
需要返回unicode
个对象。
您看到的错误是因为只能自动转换字符串或缓冲区协议对象(显式转换它们仍然更好)。
对于内置Python类型或任何具有自己的__unicode__
方法的用户定义类,您只需在其上调用unicode
:
def __unicode__(self):
return unicode(self.order_num)
答案 1 :(得分:0)
您应该声明__unicode__
这样的功能:
def __unicode__(self):
return u'%s' % self.order_num
中的更多信息