使用此代码指定所有值以返回QuerySet
import json
posts = (Post.objects.filter(owner=authenticated_user)
.values('id', 'title', 'summary'))
json_posts = json.dumps(list(posts))
有没有办法避免指定QuerySet的所有值(' id',' title'和' summary')?例如
posts = (Post.objects.filter(owner=authenticated_user)
.values(ALL VALUES))
修改
最终目标是将QuerySet序列化为JSON。以下代码引发了AttributeError
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而不列出其所有值的正确方法是什么?
答案 0 :(得分:0)
如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))