我想自动递增发票号码,即 3 位字符和 4 位数字。
class Invoice:
invoice_no = models.CharField(max_length=500, null=True, blank=True, validators=[RegexValidator(regex='^[a-zA-Z0-9]*$',message='Invoice must be Alphanumeric',code='invalid_invoice number'),])
我在后端注册了这个模型。但现在,当我单击管理中的“创建发票”时,发票应该会自动填写。当我再次单击管理中的“创建新发票”时,发票编号应增加 1,并且应为自动字段。
例如,发票编号 MAG0001、MAG0002、MAG0003 等,当我单击“创建新发票”时,这应该是管理中的自动字段。
定义一个函数来生成发票号码。
def increment_invoice_number():
last_invoice = Invoice.objects.all().order_by('id').last()
if not last_invoice:
return 'MAG0001'
invoice_no = last_invoice.invoice_no
invoice_int = int(invoice_no.split('MAG')[-1])
new_invoice_int = invoice_int + 1
new_invoice_no = 'MAG' + str(new_invoice_int).zfill(4)
return new_invoice_no
现在使用此函数作为模型字段中的默认值。
invoice_no = models.CharField(max_length=500, default=increment_invoice_number, null=True, blank=True)
这只是一个想法。修改该函数以匹配您首选的发票号码格式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)