Django 获取具有用户配置文件的用户



如何获取用户的用户配置文件?

我有自己的评论应用

型:

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 %}

我是姜戈菜鸟。谢谢。

您可以在此处简单地使用 .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() 在一个语句中获取所有内容。

相关内容

  • 没有找到相关文章

最新更新