朋友们,我正在尝试实施一个问答网站,其中登录用户获取他所关注的用户提出的问题和答案列表。 我正在使用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 %}
答案 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 %}