我有一个模特:
class Cat(models.Model):
number = models.IntegerField(...)
如何修改输出,以便在调用cat.number
时将其转换为str,并在开头添加两个零? ( 12->“ 0012” )。
我无法编写单独的方法/属性来获取此值,只能使用number
的{{1}}属性。
答案 0 :(得分:1)
使用属性。
class Cat(models.Model):
number = models.IntegerField(...)
@property
def number5c(self):
return '{:05}'.format( self.number )
,然后引用cat_instance.number5c
而不是.number
。如果要保留名称“ number”,则需要重命名模型字段并定义一个setter ...
class Cat(models.Model):
db_number = models.IntegerField(...)
@property
def number(self):
return '{:05}'.format( self.db_number )
@number.setter
def number( self, value)
# maybe raise an error here, if value is not int or str
self.db_number = int( value)