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)