【发布时间】:2021-05-06 08:23:38
【问题描述】:
我必须使用 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>)}]>]
有没有办法做到这一点?
【问题讨论】:
-
您只想将整个查询集作为字符串打印到您的 html 页面上?
-
在您的循环中
for i in getPosts:为什么要一次又一次地将相同的查询集附加到列表中?你想追加i吗?
标签: python django list django-queryset