Agr*_*jag 9 python django foreign-keys string-formatting
我所有的django模型都有unicode函数,目前这些函数往往是这样编写的:
def __unicode__(self):
return u'Unit: %s -- %s * %f' % (self.name, self.base.name, self.mul)
Run Code Online (Sandbox Code Playgroud)
但是,Code Like a Pythonista,在http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#string-formatting指出这self.__dict__
是一本字典,因此上面的内容可以简化为:
def __unicode__(self):
return u'Unit: %(name)s -- %(base.name)s * %(mul)f' % self.__dict__
Run Code Online (Sandbox Code Playgroud)
这是有效的,除了"base.name",因为python尝试查找self.__dict__['base.name']
哪个失败,而self.base.name工作.
即使您需要遵循外键关系,是否有一种优雅的方式来完成这项工作?
%
字符串格式不支持属性访问,但format
(从2.6开始):
def __unicode__(self):
return u'Unit: {name:s} -- {base.name:s} * {mul:f}'.format(**self.__dict__)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
274 次 |
最近记录: |