def style_no(self):
paving_id = self.paving_id
for i in range(3 - len('%s' % self.paving_id)):
paving_id = '0%s' % paving_id
return '1%s' % paving_id
上述方法在模型里定义
paving_id 为数据库里的小于或者等于三位数的顺序码,现在转换为以1开头的四位码。
可以转换为列表表达式的方式在 views里使用吗?
因为在VIEWS里要使用到Q查询。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
在模型里定义了可以直接在 views 里用啊,obj.style_no() 就行啊。
你的意思是一个 queryset 然后里面每个 model obj 都想用这个方法返回一个 paving_id ? 你要说清楚啊,不然怎么回答。
还有就是你的 style_no 写的太复杂了,这样写就行:
目测 @rapospectre 的回答应该是正解,本来挺简单的一件事,不知道为嘛要想得这么复杂。提供另一种解法
如果不想改变原id,可以用
'{:0>4}'.format(self.paving_id)直接扩展到4位id就可以了,之前的代码用'{:0>4}'.format(paving_id)就可以自动扩展到4位甚至n位