Django 使用用户配置文件获取用户
Django get users with userprofiles
如何获取用户的用户配置文件?
我有自己的评论app
型号:
APPS = (
(1, 'Game'),
(2, 'Article'),
(3, 'CMS'),
(4, 'User profile'),
)
comment_type = models.IntegerField(choices=APPS,
default=1,
verbose_name="Comment Type")
object_id = models.IntegerField(default=0)
user = models.ForeignKey(User, null = True, blank = False, related_name='user')
查看:
context = {
...
'comments': Comment.objects.filter(comment_type=1, object_id=game_id),
...
}
用户资料:
class UserProfile(models.Model):
user = models.OneToOneField(User)
signature = models.TextField(blank=True)
我的观点:
{% for comment in comments %}
....
{{ comment.user.profile.signature }}
{% endfor %}
我是django菜鸟。谢谢。
你可以在这里简单地使用.select_related(),因为Comment已经有一个指向User的外键,而User有一个指向Profile的外键:
comments = Comment.objects.filter(
comment_type=1, object_id=game.id).select_related('user__userprofile')
.prefetch_related() 对每个查询进行单独查找。 .select_related() 在一条语句中获取所有内容。
如何获取用户的用户配置文件?
我有自己的评论app
型号:
APPS = (
(1, 'Game'),
(2, 'Article'),
(3, 'CMS'),
(4, 'User profile'),
)
comment_type = models.IntegerField(choices=APPS,
default=1,
verbose_name="Comment Type")
object_id = models.IntegerField(default=0)
user = models.ForeignKey(User, null = True, blank = False, related_name='user')
查看:
context = {
...
'comments': Comment.objects.filter(comment_type=1, object_id=game_id),
...
}
用户资料:
class UserProfile(models.Model):
user = models.OneToOneField(User)
signature = models.TextField(blank=True)
我的观点:
{% for comment in comments %}
....
{{ comment.user.profile.signature }}
{% endfor %}
我是django菜鸟。谢谢。
你可以在这里简单地使用.select_related(),因为Comment已经有一个指向User的外键,而User有一个指向Profile的外键:
comments = Comment.objects.filter(
comment_type=1, object_id=game.id).select_related('user__userprofile')
.prefetch_related() 对每个查询进行单独查找。 .select_related() 在一条语句中获取所有内容。