-1
votes

Django, comment créer un numéro unique avec un nombre spécifique

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


0 commentaires

4 Réponses :


0
votes

supposer id_number est unique ( unique = true dans le champ modèle), vous pouvez simplement faire quelque chose comme xxx

note que Ceci mai crash avec un intégritéerror lorsque vous essayez de .Save () 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.


0 commentaires

0
votes
import random
number=int('{}{}'.format(int(str(year)[-2:]),random.randint(100, 999)))

0 commentaires

0
votes

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:]


0 commentaires

0
votes
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)

0 commentaires