我有一个与User model
Foreign key
相关的模型:
class UserProfile(models.Model):
user = models.ForeignKey(User)
gender = models.CharField(max_length=10)
credits = models.IntegerField()
...
现在我想获取用户数据,为此我确实喜欢这样:
profile = user.userprofile_set.select_related()
现在来自个人资料变量我的所有数据都在UserProfile
模型中但不是来自User
模型,例如,我有gender , credits
等但不是{{来自user email, name
模型的1}}等。但我想要所有与用户相关的信息,我知道User
参数会有request
但后来我可能会遇到与其他相关模型相同的问题用外键。
所以请让我知道以最合适的方式获取与User instance
相关的User
数据的最佳方式。
谢谢
答案 0 :(得分:2)
使用时:
profile = UserProfile.objects.select_related('user').get(pk = <pk of userprofile instance>)
当您从user
表中获取数据时,它不会执行第二次查询,如下所示:
print profile.user.email ## Won't execute second query
现在,您可以使用model_to_dict
from django.forms.models import model_to_dict
print model_to_dict(profile.user, fields=[], exclude=[]) ## All information of user relation.