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

时间:2012-11-01 18:24:30

标签: django django-models

我在名为user_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'

我在这里缺少什么?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:33)

对于因遵循旧文档而导致此错误的其他任何人,django 1.7中已将get_profile()折旧。

相反,您只需从用户访问userprofile,如下所示。

u_p = user.userprofile

其中userprofileUserProfile

的名称

您还可以点击右下角的所需版本更改为使用较新的文档

答案 1 :(得分:4)

呃,您正在尝试获取UserProfile的用户个人资料。我希望您的意思是获得一位用户,然后在其上调用get_profile()

答案 2 :(得分:0)

我正在使用Django 1.8而.userprofile会抛出错误。

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