from celery import shared_task import random from apps.projectcode.models import ProjectCode as ProjectCodeModel, ProjectCodeHead as ProjectCodeHeadModel from django.db import transaction @shared_task @transaction.atomic def generate_code(count: int, project_code_head_id): codes = [] #code_head = ProjectCodeHeadModel.objects.create(title='مقدسی', count=count) code_head = project_code_head_id project_codes = [] for i in range(count): chars = 'abcdefghijklmnopqrstuvwxyz' char1 = random.choice(chars) char2 = random.choice(chars) char4 = random.choice(chars) num = random.randint(10000000, 99999999) code = f'{char1}{char2}{char4}{num}' codes.append(code) project_code = ProjectCodeModel(project_code_head_id=code_head, code=code) project_codes.append(project_code) ProjectCodeModel.objects.bulk_create(project_codes)