2010-09-21 6 views
2

J'essaie d'ajouter des champs supplémentaires au modèle utilisateur par défaut. J'ai eu un coup d'oeil autour de l'Internet et fait quelque chose comme ceci:Impossible de charger le profil dans django

Fait un nouveau modèle nommé UserProfile qui suit dans le /UserProfile/models.py:

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

class UserProfile(models.Model): 
    # This is the only required field 
    user = models.ForeignKey(User, unique=True) 

    # The rest is completely up to you... 
    favorite_band = models.CharField(max_length=100, blank=True) 
    favorite_cheese = models.CharField(max_length=100, blank=True) 
    lucky_number = models.IntegerField() 

Et ajouté:

AUTH_PROFILE_MODULE = "newSite.userprofile" 

Pour les paramètres, j'ai également ajouté "UserProfile" à l'INSTALLED_APPS pour exécuter sqlall.

Le seul problème est lorsque je tente ce qui suit dans la coquille:

>>> from django.contrib.auth.models import User 
>>> user = User.objects.get(username = "user01") 
>>> user.get_profile() 

Je reçois l'erreur suivante:

Traceback (most recent call last): 
File "<console>", line 1, in <module> 
File "C:\Python27\lib\site-packages\django\contrib\auth\models.py", line 367,in get_profile 
    raise SiteProfileNotAvailable('Unable to load the profile ' 

SiteProfileNotAvailable: Unable to load the profile model, check AUTH_PROFILE_MODULE in your project settings 

Toute aide pour résoudre ce problème est apprécié!

Répondre

4

Si vous avez créé vraiment une application caled UserProfile et mettez le models.py là, alors vous devriez mettre

AUTH_PROFILE_MODULE = "userprofile.userprofile" 

dans votre fichier au lieu settings.py.

Vous devez rendre votre dossier UserProfile minuscule: userprofile

+0

Merci, j'ai changé le nom du dossier en caractères minuscules et il a bien fonctionné! – pyBite42

+1

La deuxième partie, cependant, est insensible à la casse. –

Questions connexes