无法将类作为具有一对一关系的属性获取?

时间:2012-10-18 03:55:07

标签: python django one-to-one twython

我是Python / Django的新手,如果我忽略了一些简单的错误,请原谅我。 我正在尝试使用Twython并且几乎要复制代码here

我似乎无法使用这样的点语法获取TwitterProfile:

user = request.user.twitterprofile

它给了我错误:

DoesNotExist at /social/user_timeline/
TwitterProfile matching query does not exist.

但如果我得到这样的个人资料:

user = TwitterProfile.objects.get(user = u)

似乎工作正常......花了好几个小时才搞清楚......

我还必须在TwitterProfile类中为用户添加related_name:

user = models.OneToOneField(User, related_name='twitteruser')

知道为什么我不能像那样访问TwitterProfile吗?

2 个答案:

答案 0 :(得分:3)

首先,您需要在settings.py中定义AUTH_PROFILE_MODULE

from twython_django_oauth.models import TwitterProfile

AUTH_PROFILE_MODULE = TwitterProfile

然后,您可以从请求中访问您的个人资料:

request.user.get_profile()

答案 1 :(得分:3)

related_name定义链接模型上属性的名称,因此您可以执行以下操作:

user = request.user.twitteruser