Django中是否可以有多个对象描述?

时间:2017-09-24 10:53:03

标签: 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中为同一个对象维护多种描述格式?

3 个答案:

答案 0 :(得分:4)

除了基本表示之外,您不应该依赖__str____unicode__方法。对于任何更复杂的事情,请在其他地方进行 - 例如在模板或其他代码中。

答案 1 :(得分: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 ) 内确定它:

{{1}}

答案 2 :(得分: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