django - 如何使用 django 显示正确的 json 数据
问题描述
我试图将数据库记录显示为 json 数组。如果我运行下面的代码
视图.py
from django.core import serializers
from django.http import HttpResponse
def read(request):
members = Member.objects.all()
print("success")
jsondata = serializers.serialize('json', members)
return HttpResponse(jsondata, content_type='application/json')
模型.py
from django.db import models
class Member(models.Model):
firstname = models.CharField(max_length=40)
lastname = models.CharField(max_length=40)
def __str__(self):
return self.firstname + " " + self.lastname
我得到如下的 json 响应
[
{"model": "crud.member", "pk": 1, "fields": {"firstname": "Thor", "lastname": "Odinson"}},
{"model": "crud.member", "pk": 6, "fields": {"firstname": "sdd", "lastname": "rrrrr"}}
]
我的要求: 这是我想要的。我想通过以下方式获取我的 json 响应
[
{"firstname": "Thorr", "lastname": "Odinson"},
{"firstname": "Ann", "lastname": "bell"}
]
为此,如果我尝试JsonResponse()
按照下面的代码使用方法,则会收到错误
“QuerySet”对象不可调用
def read(request):
#response_data = {}
response_data = []
members = Member.objects.all()
return JsonResponse(response_data, members)
print("success")
解决方案
对于您正在寻找的输出,调用json.dumps()
输出QuerySet.values()
应该没问题:
members = Member.objects.values('firstname', 'lastname')
jsondata = json.dumps(list(members))
推荐阅读
- visual-studio-code - Plotly 安装了,但 VSCode 似乎不这么认为
- php - 会话仅在数组中存储一项
- r - 设置网络圆图的方向为顺时针
- c# - 我需要一个弯曲的矩形的透视变换
- node.js - Mongodb:用新版本替换数组比添加元素更有效吗?
- node.js - 完成 Angular 11 教程并获得 TS2322:类型 'any[]' 不可分配给类型 'never[]'
- tensorflow - 从 tensorflow 导入库作为 tf
- powershell - 从 Powershell 脚本更新 Google 表格
- matlab - 在独立的 Matlab 可执行文件中嵌入全局变量?
- vue.js - iOS 14 + vuejs PWA 打开相机应用程序而不是在 HTML 中显示视频