在模型类中,我们可以定义对象描述
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 :(得分: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