2017-02-02 3 views
0

Je souhaite définir le champ d'identifiant unique pour le modèle d'utilisateur Django. Je veux les numéros comme 0000-0000-0001, 0000-0000-0002 lors de la sauvegarde des modèles.Django génère automatiquement le numéro d'identification

Approche: Je peux définir un champ comme caractère et le signal post_save peut mettre à jour l'identificateur en fonction de la clé primaire.

est-il un moyen automatique pour générer le numéro comme celui-ci pour l'identifiant de l'utilisateur (pas de clé primaire)

+2

Effort futile, perte de temps et d'énergie. Utilisez le formatage de chaîne pour l'afficher comme ceci lorsque vous affichez les nombres. – e4c5

+0

Devraient-ils être successifs? Sinon, vous pouvez utiliser le module 'uuid' – Marii

+0

@ e4c5. Formatez simplement 'user.id' de cette façon et vous avez terminé. – Selcuk

Répondre

0

Jusqu'à ce que quelqu'un a une solution plus intelligente pour le tableau de bord séparés zéro rembourrage mise en forme, vous pouvez afficher la clé primaire de l'utilisateur comme ceci:

_id = "{:0>9d}".format(user.pk) 
identifier = "{}-{}-{}".format(_id[0:3], _id[3:6], _id[6:])