По идее, в билетах добавить charfield, куда и будет записываться код билета и в цикле генерировать и сохранять записи.
Что-то вроде этогоfor line in range(1,10):
for place in range(1,50):
print(f'Билет на {line}-й ряд, {place}-е место')
Только вместо принта сохранять в базу.
Конкретно по реализации, этот код вынести в отдельную функцию и вызывать из метода save у Matches c указанием pk (можно и в самом методе, конечно, но пункт ниже).
Не обязательно, но желательно - выполнять данную функцию асинхронно, чтобы не "ложить" систему, пока будет идти процесс.
(Для этого стоит использовать Celery + reddis/rabbitMQ)
P.s. Цикл in range() не захватывает последнее число (Видно на скрине в примере, задано 50 мест, но последнее - 49)