2009-11-30 18 views

答えて

14

そうではありません。 __unicode__()メソッドを定義すると、Djangoは文字列表現が必要なコンテキスト(モデルの管理ページなど)でオブジェクトをレンダリングする必要があるときにDjangoを呼び出します。

documentationは言う:あなたは オブジェクトにunicode()を呼び出すたび

__unicode__()方法が と呼ばれています。 Djangoのデータベース バックエンドは、モデルの属性にUnicode文字列 を返しますので、 は通常、ご使用のモデルに__unicode__()メソッドを記述します。

+0

ええ、ありがとう,,,私はPythonと構文についてよく知っていますが、私は間違いなくdjangoを新しくしました。通常のDjangoは – Hulk

+2

+ ........ ...私はそれがあるWHTのアイデアを得た ........ので、それに私を導いてくださいすべての返信用 感謝をtutorial..Is 1:ドキュメントを引用してください。 –

+0

@Hulk:Djangoのドキュメントの何が問題なのですか?それは素晴らしいです。最高のものがいくつかあります。どうしたの? –

6

私はDjangoの新機能ですが、私はあなたを助けることができると思います。

まず、必ずしも必須ではありませんが、本当に良いアイデアです。このフィールドは、Django管理者のオブジェクトの表現を作成するために使用されます(そうでなければ、それらはすべて同じ名前を持ちます:-P)。そして、端末ウィンドウにオブジェクトを印刷して何が起こっているのかを確認しますメッセージ)。あなたは、Pythonに新しいしているよう

第二には、あなたが書いたものから、それが見えます。私は、クラス構文に関するいくつかのPythonチュートリアルを読むことをお勧めします。また、この言語ではセミコロンは必要ありません。 Unicodeの方法を作成するための正しい構文は次のとおりです。

class Foo(models.Model): 
    # Model fields go here 

    def __unicode__(self): 
     return u"%i" % self.sumid 

それは特別な関数であるため__unicode__方法、すなわち組み込み関数unicode(obj)がその上に呼び出されたとき、それはそのオブジェクトのUnicode文字列表現を返し、二重下線を有します(JavaのToStringのような並べ替え)。

私はこれは私が他の人があなたのために十分以上である必要があり、いくつかの詳細な説明を与えていると思います:-)

+0

うんおかげでSHD何(PK = 1)例えば貸し付けは,,私はPythonと構文についてはよく知られていますが、私は間違いなくdjangoに新しいです。通常のdjangoチュートリアルよりも役に立つリンクはありますか?それで私はそれをガイドしてください........私はアイデアを得ましたそれは...ありがとう、すべての返信のおかげで........ – Hulk

+0

私はあなたが他の情報源を指し示すことができればいいと思うが、これまでのところ私はグーグルのエラーメッセージなどを受け取ったときにランダムなブログを取得する。私はドキュメントが通常かなり良いことを知っている、あなたはちょうど彼らが特定のことをした理由を得るために適切な方法で囲まれた問題に遭遇しなければならない。 – SapphireSun

+1

'sumid'は未定義です。おそらくあなたは 'self.sumid'に変更したいでしょうか? – nosklo

3

に役立ちます願っています。しかし、ここでは簡単な答えです:__unicode__()toString()とJava(および他の多くの言語)と同等です