2010-12-13 45 views
0

été codé depuis le matin et je ne peux obtenir aucune donnée de l'utilisateur auth_user. J'ai fait une classe dans mon modèle. voici le code:comment récupérer des données à partir d'une clé étrangère

from django.contrib.auth.models import User as DjangoUser 
...... 
class Author(models.Model): 
    """ 
    Data model that holds posts' authors as shown in author pages 
    """ 
    django_user = models.ForeignKey(DjangoUser, primary_key=True) 
    about = models.TextField('About', null=True, blank=True) 
    avatar = ImageWithThumbsField('Pic', upload_to=settings.PATH_AVATAR, blank=True, null=True, sizes=settings.SIZES_AVATAR) 

dans mon modèle DjangoUser, je veux obtenir le prenom ...

qu'est-ce que je code dans mon fichier en vue de récupérer le premier nom de l'auteur?

merci beaucoup. vos réponses j'ai grandement apprécié ...

Répondre

1

Comme il est dit dans le auth documentation, le modèle utilisateur contient un attribut first_name.

# get the author from the database using a user as a primary key 
user = User.objects.get(id=1) 
author = Author.objects.get(user) 

# display the author's first name by accessing the 
# User model first, then its properties 
author.django_user.first_name 

Cependant, vous devriez lire vraiment Storing Additional Information About the User dans la même page de documentation auth. Il explique la manière correcte de créer un profil pour l'objet Utilisateur. De cette façon, le profil est stocké à côté de l'utilisateur, laissant l'objet utilisateur vierge. C'est par conception puisque vous pouvez utiliser la méthode get_profile() pour creuser dans ce profil.

+0

ce code: author = Author.objects.get (id = 1); obtiendra une erreur de: Impossible de résoudre le mot clé 'id' dans le champ. Les choix sont: about, avatar, django_user; puisque dans la classe de l'auteur seulement ces champs .. – EVG

+0

Merci. Code fixé. Bien que la route des profils Django soit celle que je recommande encore. – Soviut