12
def participant_specific(request, participant):
    helper = RelayFunctions()
    info = helper.participant_specific_donation(participant)
    info1 = helper.participant_specific_milestone(participant)

    data = { 'participant_specific_donation' : info , 'participant_specific_milestone' : info1 }
    json_serializer = serializers.get_serializer("json")()
    response = json_serializer.serialize(data, ensure_ascii=False)
    return HttpResponse(response, mimetype="application/json") 

Traceback:
 File "/home/vtrelayc/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response
   111.                         response = callback(request, *callback_args, **callback_kwargs)
 File "/home/vtrelayc/projects/relay/relayapp/views.py" in participant_specific
   192.     response = json_serializer.serialize(data, ensure_ascii=False)
 File "/home/vtrelayc/lib/python2.6/site-packages/django/core/serializers/base.py" in serialize
   46.             concrete_model = obj._meta.concrete_model

 Exception Type: AttributeError at /participants/specific/1/
 Exception Value: 'str' object has no attribute '_meta'

エラー:「str」オブジェクトには属性「_meta」がありません

辞書を解析しようとしていますが、文字列だと表示されますか?1つの辞書に複数のオブジェクトがあるためですか?

4

2 に答える 2

12

json_serializer.serialize は、クエリセットで使用することになっています。詳細はこちら

これで同じことを達成できるはずです:

import json
data = json.dumps({ 'participant_specific_donation' : info , 'participant_specific_milestone' : info1 })

お役に立てれば。

于 2013-02-10T04:38:27.223 に答える
7

Djangoのシリアライザーはsをシリアル化するためだけのものQuerySetですが、あなたはそれを渡しますdict。をシリアル化したい場合は、 Pythonの組み込みモジュールdictを探している可能性があります。json

于 2013-02-10T04:24:11.357 に答える