Je voudrais créer un numéro de 5 chiffres unique (ID_Number) pour profil étant donné que les deux premiers sont l'année que les élèves commencent à étudier. Par exemple, les étudiants inscrits en 2019 doivent avoir une carte d'identité à partir de 19 dans les deux premiers et un nombre aléatoire pour les trois autres chiffres. Merci pour toutes les solutions p>
4 Réponses :
supposer note que Ceci mai em> crash avec un id_number code> est unique ( unique = true code> dans le champ modèle), vous pouvez simplement faire quelque chose comme intégritéerror code> lorsque vous essayez de .Save () code> le modèle dans le cas malchanceux (1/999) Deux demandes simultanées sont générer le même ID_Number, auquel cas vous pouvez simplement essayer à nouveau. p> p>
import random
number=int('{}{}'.format(int(str(year)[-2:]),random.randint(100, 999)))
Selon l'endroit où vous souhaitez l'utiliser, essayez le suivant
import random
import datetime
def generate_id(year=None, digits=5):
if not year:
year=datetime.datetime.now().year
year = str(year)
digits = int(digits)
data = str(random.randint(0,999)) + year[-2:]
return data.zfill(digits)[-digits:]
import randint from random
def random_with_N_digits(n): # generate OTP
range_start = 10**(n - 1)
range_end = (10**n) - 1
return randint(range_start, range_end)