Django:模型的字符串表示

11 投票
2 回答
15540 浏览
提问于 2025-04-16 11:11

我希望我的模型有两种字符串表示方式:一种是在后台日志中显示,用于调试;另一种是更简洁的,给最终用户在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 ) 来记录你的对象信息。

撰写回答