【问题标题】:How to display correct json data using django如何使用 django 显示正确的 json 数据
【发布时间】:2019-03-23 19:00:29
【问题描述】:

我正在尝试将数据库记录显示为 json 数组。如果我运行下面的代码

views.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')

models.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")

【问题讨论】:

    标签: django


    【解决方案1】:

    对于您正在寻找的输出,在QuerySet.values() 的输出上调用json.dumps() 应该没问题:

    members = Member.objects.values('firstname', 'lastname')
    jsondata = json.dumps(list(members))
    

    【讨论】:

    猜你喜欢
    • 2021-12-14
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    相关资源
    最近更新 更多