带前缀的 Django 管理自动字段

Django admin auto field with prefix

我有一个创建票号的自动字段。然而,光是数字看起来就很不专业。我如何在自动字段前面添加“#0000”,每次数字超过 1 或两位数时,都需要填充“0”。希望这是有道理的。

 Ticket_Number = models.AutoField(primary_key=True,)
  

   def save(self, *args, **kwargs):
    self.Ticket_Number = '#0000' + self.Ticket_Number
    return super(SupportTicket, self).save(*args, **kwargs)

您可以覆盖模型的 save 方法来实现此目的:

def save(self, *args, **kwargs):
    self.Ticket_Number = '#0000' + self.Ticket_Number
    return super(TicketModel, self).save(*args, **kwargs)

未测试,抱歉!您可能会添加一些转换...

 def save(self):
    if not self.Ticket_Number:
        lenn = len(SupportTicket.objects.all()) + 1
        prefix = "#000000"
        self.Ticket_Number = prefix[:-len(str(lenn))] + str(lenn)
    super(SupportTicket, self).save()