Résolue

Django : importer User pour la ForeignKey

# Django # HTML

Gabriel Trouvé

Mentor

Bonsoir,


1ere question :

Donc pour importer le modèle User j'ai vu deux façons de faire.

C'est vraiment 2 choix possibles ?

Il n'est pas préférable d'utiliser une façon plutôt que l'autre ?

Si oui pk svp ?


récupérer avec le get user model

from django.contrib.auth import get_user_model
from django.db import models

# on récupère le modele d'utilisateur de notre projet
User = get_user_model()

ou importer directement le modèle

 from django.contrib.auth.models import User


2eme question : (author correspond à un champs de modèle, ForeignKeys dans mon cas)

Dans le html on fait :

{{ post.author.username }}


Pourquoi ne pas faire simplement ? :

{{ post.author}}


J'ai un peu de mal à voir la différence.


Merci ^^

Hello Gabriel,


pour ta première question:


obtenir le user avec get_user_model() est utile dans le cas où tu veux utiliser un model custom pour ton user que tu as définis.


La seconde option fait directement appel explicitement au modèle User built in de Django.


L'intérêt de la première option c'est que si tu n'a pas de model User custom, elle fera appel au model User de base. On voit beaucoup sur les forums que dans ce cas là autant utiliser cette méthode et Thibault le dit aussi dans sa vidéo.


Pour ta deuxième question, les 2 fonctionnent dans ce cas. Je préfère de loin la première option qui est beaucoup plus lisible et explicite ... zen ... =D.

Gabriel Trouvé

Mentor

Merci


L'intérêt de la première option c'est que si tu n'a pas de model User custom, elle fera appel au model User de base. On voit beaucoup sur les forums que dans ce cas là autant utiliser cette méthode et Thibault le dit aussi dans sa vidéo.


Donc la première option, si j'ai un modèle user custom ça fera appel à lui. Sinon dans tous les cas ça apelera le user built in si je n'ai pas de user custom ?


Merci ! :)

Alors je ne vais pas m'arrêter là dans ma question lol.

Si je veux un modèle User custom, je vais le modifier dans les codes sources ? Ou je vais créer un modèle qui hérite de User ?

Ou c'est complètement autre chose..... lol

Non tu crée une classe qui hérite de User, tu modifie surtout pas le code source de Django

Gabriel Trouvé

Mentor

merci ^^

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.