0

我对 django 有点困惑__unicode__()。我还是个新手。

我有这个代码:

模型.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)

很明显,我的字段上没有字符串。如何声明缓冲区?

或者

任何人都有另一个答案..请帮助..谢谢。

4

2 回答 2

4

__unicode__需要返回一个unicode对象。

您看到的错误是因为只能自动转换字符串或缓冲区协议对象(最好显式转换它们)。

对于内置的 Python 类型,或任何具有自己__unicode__方法的用户定义类,您可以调用unicode它们:

def __unicode__(self):
    return unicode(self.order_num)
于 2012-04-27T20:45:47.637 回答
0

你应该__unicode__像这样声明你的函数:

def __unicode__(self):
    return u'%s' % self.order_num

其他模型实例方法中的更多信息

于 2012-04-27T20:46:45.490 回答