0

__unicode__()私はdjangoで少し混同しています。私はまだ初心者です。

私はこのコードを持っています:

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)ますか?

私のフィールドに文字列がないことは明らかです。バッファを宣言するにはどうすればよいですか?

また

誰にも別の答えがあります..助けてください..ありがとう。

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 に答える