Как генерировать уникальный серийный номер по дате и также он будет генерировать серийный номер после удаления в django
Мне нужно сгенерировать серийный номер типа TES-0922-1, TES-0922-2 и т.д. на....
здесь TES - это (название_компании) 0922 - это (месяц и год) 1,2 - (серийный номер)
Я хочу генерировать уникальный номер по дате. Если сегодня 9 месяц и 22 год и я генерирую новые данные этого месяца, то мой серийный номер будет TES-0922-01.
.Также, если у меня есть серийные номера TES-0922-01, TES-0922-02, TES-0922-03 и если я удаляю из них TES-0922-01, то при создании новых данных мой серийный номер будет TES-0922-04
.Также если у меня есть серийные номера TES-0922-01, TES-0922-02, TES-0922-03, TES-0922-04 и если я удаляю из них TES-0922-01, TES-0922-04, то после этого при создании новых данных мой серийный номер будет TES-0922-04
.
Примечание: я сохраняю эти данные в базе данных и обрабатываю их с помощью django queryset.
То, что я сделал, указано ниже, но это не работает должным образом. Потому что я подсчитываю данные с помощью django queryset.
views.py
def sales_invoice(request):
current_time = datetime.datetime.now()
latest_year = current_time.year
year=str(latest_year)[-2:]
latest_month = current_time.month
month="%02d" % (latest_month)
company_label= Company_Setup.objects.get(id=request.session['company_id'])
existing_label=Sales_Invoice.objects.filter(company=company_label).all()
if not existing_label:
gen_invoice_number=f"{company_label}-{month}{year}-1"
else:
total_sales = Sales_Invoice.objects.filter(company=company_label).all().count() + 1
gen_invoice_number=f"{company_label}-{month}{year}-{total_sales}"