generateur_v3/backend/api/services/database.py
Kilton937342 84b38cc12d ...
2022-09-18 22:43:04 +02:00

18 lines
545 B
Python

import random
import string
from sqlmodel import select, Session
from sqlmodel import SQLModel
def generate_unique_code(model: SQLModel, s: Session, field_name='id_code', length: int = 6):
if getattr(model, field_name, None) is None:
raise KeyError("Invalid field name")
while True:
code = ''.join(random.choices(string.ascii_uppercase, k=length))
is_unique = s.exec(select(model).where(
getattr(model, field_name) == code)).first() == None
if is_unique:
break
return code