如何解决Django - 如何将 Page 对象转换为 Json
我有这个用于学习目的的社交网络项目,我正在尝试为其添加分页功能。在将它们转换为 JSON 后,我设法使用 JavaScript 成功呈现页面中的所有帖子。问题是我收到此错误:Object of type Page is not JSON serializable
当我尝试像这样对帖子进行分页时:
all_posts = Post.objects.all().order_by("-timestamp").all()
serialized_posts = [post.serialize() for post in all_posts]
paginator = Paginator(serialized_posts,10) #every page displays up to 10 post
page_obj = paginator.get_page(pagenumber)
return JsonResponse(page_obj,safe=False)
这是 Post 模型:
class Post(models.Model):
autor = models.ForeignKey(User,on_delete=models.CASCADE,null=True,blank=True,default="",related_name="user_post")
content = models.TextField(max_length=240)
likers = models.ManyToManyField(User,related_name="posts_liked")
timestamp = models.DateTimeField(auto_Now_add=True)
def serialize(self):
return {
"id": self.id,"autor": self.autor.username,"content": self.content,"likers": [user.username for user in self.likers.all()],"timestamp": self.timestamp.strftime("%b. %d,%Y,%H:%M %p"),"autor_profile_pic": self.autor.profile_picture
}
关于如何解决这个问题有什么想法吗?
解决方法
先分页,后序列化
def all_posts(request,pagenumber):
all_posts = Post.objects.all().order_by("-timestamp").all()
paginator = Paginator(all_posts,10)
page_obj = paginator.get_page(pagenumber)
serialized_posts = [post.serialize() for post in page_obj]
return JsonResponse(serialized_posts,safe=False)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。