Django-fr

Forum

#1 24-06-2015 23:54:16

timber
Membre
Inscription : 24-06-2015
Messages : 2

Paramétrer un formulaire héritant du modèle User

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

#2 25-06-2015 10:30:27

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : Paramétrer un formulaire héritant du modèle User

Bonjour,

L'explication pour surcharger le model User est donnée ici: https://docs.djangoproject.com/fr/1.8/t … user-model

Hors ligne

#3 25-06-2015 16:45:32

timber
Membre
Inscription : 24-06-2015
Messages : 2

Re : Paramétrer un formulaire héritant du modèle User

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

#4 30-06-2015 10:53:37

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : Paramétrer un formulaire héritant du modèle User

En surchargeant le modèle user et redéfinissant le champs email, cela devrait suffire.

Hors ligne

Pied de page des forums