如何获取被跟踪用户发布的问题列表

时间:2016-05-27 15:19:19

标签: python django

朋友们,我正在尝试实施一个问答网站,其中登录用户获取他所关注的用户提出的问题和答案列表。 我正在使用django-friendship来实现用户跟随。我想知道如何获取当前用户所关注的用户发布的所有问题。

我尝试了以下但不起作用。

views.py

def index(request):
    if request.session.get('current_user'):
        questions = []
        users = Follow.objects.following(request.user)
        i = 0
        while i < len(users):
            posts = Question.objects.filter(user=users[i])
            questions.append(posts)
            i = i + 1
        return render(request, "welcome/index.html",locals())

这是我的模板

欢迎/ index.html中

{% extends "layout.html" %}

{% block content %}
    {% for q in questions %}
       {{ q.title }}
    {% endfor %}

{% endblock %}

2 个答案:

答案 0 :(得分:0)

questions是一个查询集。因此,Question是一个查询集列表,在您的模板中,您不是在title个实例上进行迭代,而是在没有questions.extend(posts) # not: append 属性的查询集上进行迭代。您可以在您的视图中尝试:

list

以获取实际Question{% for qs in questions %} {% for q in qs %} {{ q.title }} {% endfor %} {% endfor %} 个实例。或者,您可以更改模板:

{{1}}

答案 1 :(得分:0)

您可以在不循环的情况下获取所有问题

views.py

def index(request):
    if request.session.get('current_user'):
        users = Follow.objects.following(request.user)
        questions = Question.objects.filter(user__in=users)
        return render(request, "welcome/index.html",locals()) 

模板

{% extends "layout.html" %}

{% block content %}
    {% for q in questions %}
       {{ q.title }}
    {% endfor %}

{% endblock %}