Python Django get_profile()方法不适用于扩展用户模型

Python Django get_profile()方法不适用于扩展用户模型,python,django,django-models,Python,Django,Django Models,我在一个名为user\u profile的应用程序中有一个模型,如下所示: from django.db import models from django.contrib.auth.models import User class UserProfile(models.Model): user = models.OneToOneField(User) def __unicode__(self): return self.user.username 在我的设

我在一个名为
user\u profile
的应用程序中有一个模型,如下所示:

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

class UserProfile(models.Model):
    user = models.OneToOneField(User)

    def __unicode__(self):
        return self.user.username
在我的设置中:

AUTH_PROFILE_MODULE = 'user_profile.UserProfile'
但如果我尝试:

u = UserProfile.objects.get(pk=1)
p = u.get_profile()
我得到以下错误:

AttributeError: 'UserProfile' object has no attribute 'get_profile'
我错过了什么


任何帮助都将不胜感激。

呃,您正在尝试获取用户配置文件的用户配置文件。我希望您的意思是获取一个用户,然后调用
get_profile()

对于通过遵循旧文档而获得此错误的任何其他人,
get_profile()
在django 1.7中已贬值

相反,您可以从用户处访问userprofile,如下所示

u_p = user.userprofile
其中
userprofile
userprofile
类的名称


您还可以通过单击右下角的所需版本来更改为使用较新的文档。我正在使用Django 1.8和
。userprofile
会引发错误


为了解决这个问题,因为我在Django 1.3中设置了配置文件,在升级到1.8之后,我刚刚将get_profile()更改为
profile
,它可以工作。

OK。我想通过指定
AUTH\u PROFILE\u MODULE='user\u PROFILE.UserProfile'
我可以访问
get\u PROFILE()
方法。另外,如果我在模板中执行
{{request.user.get_profile.username}
,我什么也得不到。因此,如果执行{user.get_profile.user},模板将显示用户名。但是我不能做
{{user.get_profile.username}}
或者
{{user.get_profile.email}
。为什么会这样?你为什么要做这些事?电子邮件和用户名是用户模型上的字段,这是您开始使用的!为什么要从用户转到用户配置文件,然后再回到用户?啊!因为如果我在某个时候展开UserProfile,我可能想要获得那些特定字段和通用字段,比如email。我认为所有这些都可以通过
get_profile()
访问。那么我应该如何在模板中获取电子邮件变量?好的,我想
{{user.email}}
可以用了。谢谢。这帮了我大忙。