Auto increament the invoice number in django backend for new invoice

后端 未结 4 1735
失恋的感觉
失恋的感觉 2021-02-09 14:25

I want to auto increament the invoice number which is 3 digits char and 4 digits number.

class Invoice:
    invoice_no = models.CharField(max_length=500, null=Tr         


        
4条回答
  •  走了就别回头了
    2021-02-09 15:05

    Define a function to generate invoice number.

    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
    

    Now use this function as default value in your model filed.

    invoice_no = models.CharField(max_length=500, default=increment_invoice_number, null=True, blank=True)
    

    This is just an idea. Modify the function to match your preferred invoice number format.

提交回复
热议问题