24 lines
656 B
Python
24 lines
656 B
Python
from apps.projectcode.models import ProjectCodeHead as ProjectCodeHeadModel, ProjectCode as ProjectCodeModel
|
|
from apps.projectcode.task import generate_code
|
|
from rest_framework.validators import ValidationError
|
|
from django.db import transaction
|
|
|
|
|
|
@transaction.atomic
|
|
def create_project_code(title: str, count: int) -> ProjectCodeHeadModel:
|
|
|
|
try:
|
|
|
|
project_code_head = ProjectCodeHeadModel.objects.create(
|
|
title=title,
|
|
count=count
|
|
)
|
|
|
|
generate_code.delay(count=count, project_code_head_id=project_code_head.id)
|
|
|
|
return project_code_head
|
|
|
|
except Exception as e:
|
|
raise ValidationError(e)
|
|
|