Vous n'êtes pas identifié(e).
Hello,
Voilà, j'ai réussi vaille que vaille à monter un formulaire qui ne m'affiche aucune erreur et qui enregistre correctement un utilisateur. Par contre, j'ai remarqué que je peux enregistrer un utilisateur avec le même username pourvu qu'il rentre une adresse mail différente et ça, je ne peux pas le permettre.
Voici le code de mon modèle :
from django.db import models
from django.contrib.auth.models import User
GENDER_CHOICES = (
('male','homme'),
('female','femme'),
)
class UserProfile(models.Model):
user = models.OneToOneField(User, unique=True, null=True)
gender = models.CharField(max_length=10, choices=GENDER_CHOICES, default='male', blank=False)
description = models.TextField(blank=True)
date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="Date d'inscription")
Et ma question en fait c'est comment modifié les champs hérités du modèle User? j'aimerai juste ajouter un attribut unique=True pour le champ mail
En fait je n'ai aucune idée de où sont les champs de user, c'est très frustrant...
Hors ligne
Bonjour,
L'explication pour surcharger le model User est donnée ici: https://docs.djangoproject.com/fr/1.8/t … user-model
Hors ligne
Je trouve la documentation difficilement accessible pour un débutant mais d'après ce que je lis le modèle User n'est pas altérable. On peut simplement rajouter des champs supplémentaires.
On peut recourir au modèle AbstractUser mais si je comprends toujours bien, il permet juste de préciser quel champ doit être utiliser pour s'authentifier. Il permet aussi de préciser les champs obligatoire. Mais il n'offre toujours pas la possibilité de paramétrer certains champs pour, par exemple dans mon cas, qu'il rejette une adresse mail si elle est déjà présente dans la base de donnée.
Hors ligne
En surchargeant le modèle user et redéfinissant le champs email, cela devrait suffire.
Hors ligne