29 lines
931 B
Python
29 lines
931 B
Python
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)
|
|
|
|
|
|
|