如何修改代码实现从000001开始的无MAG前缀自增发票编号
发票编号生成代码调整方案
调整后完整代码
def increment_invoice_number(self): last_invoice = Transaction.objects.all().order_by('id').last() if not last_invoice: # 无历史数据时返回初始6位编号 return '000001' invoice_no = last_invoice.invoice_no # 直接将已有编号转整数,不需要拆分前缀 invoice_int = int(invoice_no) new_invoice_int = invoice_int + 1 # 转字符串后用zfill补前导零,固定6位长度 new_invoice_no = str(new_invoice_int).zfill(6) return new_invoice_no invoice_no = models.CharField(max_length=500, default=increment_invoice_number, null=True, blank=True)
核心改动说明
- 删除了所有
MAG前缀相关的拆分、拼接逻辑,编号不再包含额外前缀 - 初始值从
MAG0001调整为000001,满足起始编号要求 - 新增
zfill(6)方法自动补前导零,确保所有编号始终保持6位长度,不会随着数值增大出现位数变化的问题
内容的提问来源于stack exchange,提问作者Osama Daghestani
相关产品推荐
相关产品推荐

