Auto increament the invoice number in django backend for new invoice

后端 未结 4 1739
失恋的感觉
失恋的感觉 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:16

    In above arulmr answer just edit char field

    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])
        width = 4
        new_invoice_int = invoice_int + 1
        formatted = (width - len(str(new_invoice_int))) * "0" + str(new_invoice_int)
        new_invoice_no = 'MAG' + str(formatted)
        return new_invoice_no  
    
    class Invoice(models.Model):
        invoice_no = models.CharField(max_length = 500, default = increment_invoice_number, null = True, blank = True)
    

    This will work fine.

提交回复
热议问题