返回 QuerySet 的所有值并序列化为 JSON



使用此代码指定所有值以返回 QuerySet

import json
posts = (Post.objects.filter(owner=authenticated_user)
                 .values('id', 'title', 'summary'))
json_posts = json.dumps(list(posts))

有没有办法避免指定查询集的所有值("id"、"title"和"summary"(? 例如

posts = (Post.objects.filter(owner=authenticated_user)
                 .values(ALL VALUES))

编辑:

最终目标是将 QuerySet 序列化为 JSON。下面的代码引发一个属性错误

try:
    obj = SystemOverview.objects.filter(serial=pk).values()
except SystemOverview.DoesNotExist:
    return Response(status=status.HTTP_404_NOT_FOUND)
if request.method == 'GET':
    return Response(serializers.serialize("json", list(obj)))
#ERROR MESSAGE
#AttributeError: 'dict' object has no attribute '_meta'

Django 对象模型序列化为 JSON 而不列出其所有值的正确方法是什么?

如 Django 文档 https://docs.djangoproject.com/en/1.10/ref/models/querysets/#values 中所述

values(( 方法采用可选的位置参数、*字段、 指定应限制 SELECT 的字段名称。如果 您指定字段,每个字典将仅包含该字段 您指定的字段的键/值。如果未指定 字段,每个字典将包含每个字段的键和值 在数据库表中

只需使用Post.objects.filter(owner=authenticated_user).values()

编辑:

objs = SystemOverview.objects.filter(serial=pk).values()
if request.method == 'GET':
    return Response(serializers.serialize("json", objs))

最新更新