【问题标题】:return django object with it's related instance as json返回 django 对象及其相关实例为 json
【发布时间】:2021-07-29 07:27:18
【问题描述】:

我有一个 Comment 模型和作者 ForeignKey 我想用它的作者个人资料图片以 json 格式返回它我尝试使用管理器但如果它有问题或者它是错误的方法 idk

class CommentManager(models.Manager):
    def get_author_url(self, author):
        return self.get(url = author.pic.url)


class Comment(models.Model):
    post = models.ForeignKey(Post, related_name='comments', on_delete=models.CASCADE, blank=True, null=True)
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    content = models.TextField()
    DatePublished = models.DateTimeField(auto_now_add=True)
    objects = CommentManager()

但我得到了什么:

[{"id": 24, "post_id": 146, "author_id": 5, "content": "sb7", "DatePublished": "2021-07-29T06:40:38.752Z"}]

【问题讨论】:

  • 您在使用 DRF 吗?如果是这样,请提供您的 Comment 序列化程序的代码。
  • @May.D 不,只是普通的 django

标签: json django


【解决方案1】:

在视图中使用序列化器

from django.core import serializers

serializers.serialize('json',Comments.objects.filter(post=post))

【讨论】:

  • 这是我的观点代码:def GetPostComment(request, pk, counts=0): try: post = Post.objects.get(pk=pk) cmets = list(Comment.objects.filter(post =post)[counts:][:counts+10].values()) return JsonResponse(cmets, safe=False) except: return JsonResponse({'message':"Whops 出了问题或对象已被删除!" }) idk 在哪里使用序列化程序
  • 不要在 cmets 中发布代码。请在您的问题中包含您的视图代码。
猜你喜欢
  • 2015-07-22
  • 1970-01-01
  • 2017-04-12
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多