Как генерировать уникальный серийный номер по дате и также он будет генерировать серийный номер после удаления в 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}"
Вернуться на верх