Django:模型的字符串表示
我希望我的模型有两种字符串表示方式:一种是在后台日志中显示,用于调试;另一种是更简洁的,给最终用户在HTML中显示。现在,我只是重写了 __unicode__()
方法。请问有没有办法做到这一点?
2 个回答
8
使用属性
class SomeThing( models.Model ):
foo=
bar=
baz=
def __unicode__( self ):
return "{0} {1}".format( self.foo, self.bar )
@property
def details( self ):
return repr( dict( foo=self.foo, bar=self.bar, baz=self.baz ) )
现在你可以记录 someObject.details
24
你也可以试试 __repr__
和 __str__
,这对你记录日志或者调试程序会很有帮助。一般来说,你的日志记录工具或者调试工具会用 repr( object )
来记录你的对象信息。