gpt4 book ai didi

django - 从 json 中删除字段

转载 作者:行者123 更新时间:2023-12-02 05:44:37 24 4
gpt4 key购买 nike

我有一个渲染 json 的 View 函数。我能够在 json 中指定我想要的列,但我不知道如何更改关键字段的名称。就像字段“pk”应该是“id”。

我正在使用此自动完成控件 ( http://loopj.com/2009/04/25/jquery-plugin-tokenizing-autocomplete-text-entry/ ),它要求 json 具有某些字段。

from django.http import HttpResponse
from django.shortcuts import render_to_response
from iCookItThisWay.recipes import models
from django.core import serializers
from django.utils import simplejson

def index(request, template_name):
meal_types = []
q = ''

if 'q' in request.GET and request.GET['q']:
q = request.GET['q']

if len(q) > 0:
meal_types = models.MealType.objects.filter(name__istartswith=q)

json_serializer = serializers.get_serializer("json")()
sdata = json_serializer.serialize(meal_types, ensure_ascii=False, fields = ('id', 'name'))

return HttpResponse(simplejson.dumps(sdata), mimetype='application/json')

您能否给我指出一些文档。我觉得我在查找文档方面很糟糕。

最佳答案

您可以手动构建一个字典并通过 .dumps() 将其转换为 json,而不是使用序列化器

meal_types = models.MealType.objects.filter(name__istartswith=q)
results = []
for meal_type in meal_types:
results.append(
{'id': meal_type.id,
'name': meal_type.name})

return HttpResponse(simplejson.dumps(results), mimetype='application/json')

您还可以使用列表理解来构建结果,因为只有几个字段数:

results = [{'id': mt.id, 'name': mt.name} for mt in meal_types]

关于django - 从 json 中删除字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3081780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com