你可以覆盖保存方法,获得数据库中最后一个id条目,提取id-string的数字部分,并将其递增1。
def save(*args, **kwargs): if self.ticket_id is None: last_ticket_id = self.__class__.objects.all().order_by('ticket_id').last() if last_ticket_id is None: last_ticket_id = '000' last_ticket_id_number = ''.join(substr for substr in last_ticket_id if substr.isdigit()) leading_zeros = len(last_ticket_id_number) - 1 incremented_number = int(last_ticket_id_number) + 1 incremented_number = str(incremented_number).zfill(leading_zeros) self.ticket_id = f'AB{incremented_number}' super().save(*args, **kwargs)所以你每次都要加
AB
,还是说有一部分是要生成钥匙的?