2016-05-27 2 views
0

Друзья, я пытаюсь реализовать сайт ответа на вопрос, в котором зарегистрированный пользователь получает список вопросов и ответов, которые задают пользователи, которых он следует. Я использую django-дружбу для реализации пользователя. Я хочу знать, как мы можем получить все вопросы, заданные пользователями, которых следует за текущим пользователем.Как получить список вопросов, отправленных отслеживаемыми пользователями

Я пробовал следующее, но не работает.

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

Вы можете получить все вопросы без зацикливания

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

благодаря человеку, он работал. Я понятия не имел об этом. Большое спасибо! – amankarn

0

posts является QuerySet. Таким образом, questions - это список запросов и в вашем шаблоне вы не итерируете более Question экземпляров, а запросами, у которых нет атрибута title. Вы можете попробовать на ваш взгляд:

questions.extend(posts) # not: append 

для получения актуальной list из Question экземпляров. Или, вы можете изменить шаблон:

{% for qs in questions %} 
    {% for q in qs %} 
     {{ q.title }} 
    {% endfor %} 
{% endfor %} 
Смежные вопросы