0

JSON としてエンコードされた出荷のリストを返すビューがあります...

def get_new_shipments(request):
    # ...
    shipments = Shipment.objects.filter(filter).exclude(**exclude).order_by(order) \
        .annotate(num_bids=Count('bids'), min_bid=Min('bids__amount'), max_bid=Max('bids__amount'))
    return json_response(shipments)

def json_response(data):
    response = HttpResponse(mimetype='application/json')
    serializer = serializers.get_serializer("json")()
    data = list(data)
    serializer.serialize(data, ensure_ascii=False, stream=response)
    return response

しかし、JSON にこれらの注釈がどこにも表示されません...どうすればそれらを含めることができますか?

4

1 に答える 1

1

これはうまくいくようです:

return HttpResponse(simplejson.dumps(list(shipments.values()), ensure_ascii=False, default=json_formatter), mimetype='application/json')

def json_formatter(obj):
    if isinstance(obj, datetime.datetime):
        return obj.isoformat()
    elif isinstance(obj, Decimal):
        return unicode(obj)
    else:
        raise TypeError, 'Object of type %s with value of %s is not JSON serializable' % (type(obj), repr(obj))

クレジット

于 2010-10-27T17:15:24.010 に答える