Автоматическое поле администратора Django с префиксом

#django #admin #prefix #autofield

#django #администратор #префикс #автоматическое поле

Вопрос:

У меня есть автоматическое поле, которое создает номер билета. однако только одно число выглядит очень непрофессионально. как бы я добавил «# 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)
 

Ответ №1:

save Для достижения этой цели вы можете переопределить метод модели:

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

Не проверено, извините! Вероятно, у вас будут некоторые дополнения к преобразованию…

Комментарии:

1. я добавил приведенный выше код в модель, но он дает мне возможность только объединять str (не «NoneType») в str, как вы думаете, это потому, что это автоматическое поле

Ответ №2:

  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()