in trackers/models.py [0:0]
def save(self, *args, **kwargs):
if self._state.adding:
# FIXME: deleting the latest tickets will allow reuse
# Consider:
# disallowing deletion
# switching to uuids
# recording last used on product model
product_tickets = Ticket.objects.filter(product=self.product)
if product_tickets.exists():
newest = product_tickets.latest("product_ticket_id")
new_id = 1 + newest.product_ticket_id
else:
new_id = 1
self.product_ticket_id = new_id
super().save(*args, **kwargs)