Gau*_*rav 6 python django django-admin django-admin-filters django-admin-tools
我想自动增加发票号码,即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'),])
Run Code Online (Sandbox Code Playgroud)
我在后端注册了这个模型.但是现在当我点击在admin中创建发票时,发票应该自动填写.当我再次点击在admin中创建新发票时,invoice_number应该加1并且应该是auto字段.
发票编号为MAG0001,MAG0002,MAG0003等的Ex,当我点击创建新发票时,这应该是管理员中的自动字段.
定义生成发票编号的功能.
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)
return new_invoice_no
Run Code Online (Sandbox Code Playgroud)
现在使用此函数作为模型字段中的默认值.
invoice_no = models.CharField(max_length=500, default=increment_invoice_number, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
这只是一个想法.修改功能以匹配您的首选发票号格式.