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