Python 从与外键相关的模型中获取数据

Python 从与外键相关的模型中获取数据,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我有一个型号与用户型号和外键相关: class UserProfile(models.Model): user = models.ForeignKey(User) gender = models.CharField(max_length=10) credits = models.IntegerField() ... 现在我想获取用户数据,为此,我做了如下操作: profile = user.userprofile_set.sele

我有一个型号与
用户型号
外键
相关:

class UserProfile(models.Model):
    user        = models.ForeignKey(User)
    gender      = models.CharField(max_length=10)
    credits     = models.IntegerField()
    ...
现在我想获取用户数据,为此,我做了如下操作:

profile = user.userprofile_set.select_related()
print profile.user.email ## Won't execute second query
现在,从profile变量中,我有
UserProfile
模型中的所有数据,但不是来自
User
model例如,我有
性别、学分等,但不是
用户电子邮件、姓名等。这些数据来自
User
模型。但我想要所有与用户相关的信息,我知道
request
参数将具有
用户实例
,但稍后我可能会遇到与外键相关的其他型号的相同问题

因此,请告诉我以最合适的方式获取
用户
外键
相关的数据的最佳方法

感谢您使用此功能:

profile = UserProfile.objects.select_related('user').get(pk = <pk of userprofile instance>)
现在,您可以使用
model\u to\u dict

from django.forms.models import model_to_dict
print model_to_dict(profile.user, fields=[], exclude=[]) ## All information of user relation.

它给出了错误'QuerySet'对象没有属性'\u meta',我认为这是因为model\u to\u dict()需要对象,而profile不是一个对象,因此select\u related不能与get()一起使用,我需要获取配置文件以供分词器使用,如果我使用了用户筛选器()同样的错误也会出现。我想你可以使用
select\u related
get()
。是的,在选择了与用户相关的()之后,我犯了一个错误,我想我可以访问用户信息,而不必使用model\u to\u dict(),比如“profile”给我用户配置文件模型的数据,“profile.user”给我用户模型数据。非常感谢您的帮助:)