#python #django #list #django-queryset
#python #django #Список #django-queryset
Вопрос:
Мне нужно отобразить НЕСКОЛЬКО сообщений от НЕСКОЛЬКИХ пользователей, за которыми в настоящее время следит зарегистрированный пользователь, на одной странице, используя шаблоны django. Это функция, которую я написал:
def following(request, userName):
userProfiles = FollowingList.objects.filter(listOwner = request.user)
print("userProfile is ", userProfiles)
listOfAllPosts = []
#get posts against following
for uP in userProfiles:
getPosts = Posts.objects.filter(created_by = uP.followingID)
print("Value of getPosts is", getPosts)
for i in getPosts:
listOfAllPosts.append(getPosts.values('created_by', 'postContent', 'dateAndTime'))
print("Printing ALL posts", listOfAllPosts)
return render(request, "network/following.html", {
"listOfAllPosts" : listOfAllPosts
})
Результат, который я получаю из listOfAllPosts, выглядит следующим образом:
[<QuerySet [{'created_by': 12, 'postContent': 'I have hot air balloon rides', 'dateAndTime': datetime.datetime(2021, 1, 30, 4, 21, 3, 192704, tzinfo=<UTC>)},
{'created_by': 12, 'postContent': 'adding second post', 'dateAndTime': datetime.datetime(2021, 2, 1, 7, 2, 51, 734510, tzinfo=<UTC>)}]>,
<QuerySet [{'created_by': 11, 'postContent': 'Hello Sifaah', 'dateAndTime': datetime.datetime(2021, 1, 30, 4, 4, 31, 410825, tzinfo=<UTC>)}]>]
Однако я хочу, чтобы результат выглядел так, чтобы я мог легко распечатать его на странице HTML:
[<QuerySet[{'created_by': 12, 'postContent': 'I have hot air balloon rides', 'dateAndTime': datetime.datetime(2021, 1, 30, 4, 21, 3, 192704, tzinfo=<UTC>)},
{'created_by': 12, 'postContent': 'adding second post', 'dateAndTime': datetime.datetime(2021, 2, 1, 7, 2, 51, 734510, tzinfo=<UTC>)},
{'created_by': 11, 'postContent': 'Hello Sifaah', 'dateAndTime': datetime.datetime(2021, 1, 30, 4, 4, 31, 410825, tzinfo=<UTC>)}]>]
Есть ли способ добиться этого?
Комментарии:
1. Вы просто хотите напечатать весь набор запросов в виде строки на своей HTML-странице?
2. Почему в вашем цикле
for i in getPosts:
вы снова и снова добавляете один и тот же набор запросов в список? вы хотели добавитьi
?
Ответ №1:
Если вы поместите что-то подобное в свой following.html файл
{% for users_posts in listOfAllPosts %}
{% for post in users_posts %}
<p>{{ post }}</p>
{% endfor %}
{% endfor %}
Вы получите результат, который выглядит так на вашей странице.
Если вы вместо этого поместите что-то подобное в свой following.html файл
{% for users_posts in listOfAllPosts %}
{% for post in users_posts %}
<p>Created By: {{ post.created_by }}</p>
<p>Post Content: {{ post.postContent }}</p>
<p>Date: {{ post.dateAndTime }}</p>
{% endfor %}
{% endfor %}
Вместо этого вы получите результат, который выглядит следующим образом.
Комментарии:
1. Нет проблем. Рад, что смог помочь!