2017-09-24 12 views
0

は、我々は番目のオブジェクトの記述Djangoで複数のオブジェクト記述が可能ですか?モデルクラスで

def __unicode__(self): 
    return u'%s %s %s %s %s %s %s %s ' % ("ID:", self.id, "Active:", self.is_active, "Bilingual:", self.is_bilingual, "Description:" , self.description) 

を定義することができます。しかし、時々私は、異なる状況で異なる説明が必要です。 Djangoで同じオブジェクトに対して複数の記述形式を保持することはできますか?

+0

をどのようにするときに使用する記述ジャンゴを言うだろうか?独自のメソッドを定義し、必要なコンテキストで呼び出すことができます。例えば。 'def my_context_description(self):返信u '%s'%(self.id)' – dirkgroten

答えて

0

あなたはとてもよう__unicode__の内側にそれを決定することができます。

def __unicode__(self): 
    # If the description of the object is empty, for example: 
    if self.description == "": 
     return u'%s %s %s %s %s %s %s ' % ("ID:", self.id, "Active:", self.is_active, "Bilingual:", self.is_bilingual) 
    return u'%s %s %s %s %s %s %s %s ' % ("ID:", self.id, "Active:", self.is_active, "Bilingual:", self.is_bilingual, "Description:" , self.description) 
+0

それは私がそれを呼び出す場所からではなく、オブジェクト自体によって駆動されます。 –

4

あなたは、基本的な表現以外の何のための__str__または__unicode__方法に頼るべきではありません。もっと複雑なものについては、テンプレートや他のコードのように、他の場所でやってください。

0

あなたがこれを行うことができます:

class Example(models.Model): 
    def __init__(self, *args, **kwargs): 
     super(Example, self).__init__(*args, **kwargs) 
     if self.description == "": 
      self._desc = u'%s %s %s %s %s %s %s ' % ("ID:", self.id, "Active:", self.is_active, "Bilingual:", self.is_bilingual) 
     else: 
      self._desc = u'%s %s %s %s %s %s %s %s ' % ("ID:", self.id, "Active:", self.is_active, "Bilingual:", self.is_bilingual, "Description:" , self.description) 
    def __unicode__(self): 
     return self._desc 
関連する問題