के रूप में सीरियलाइज्ड मैं अपने HTTP प्रतिक्रिया में एक JSON एन्कोडेड MongoDB ऑब्जेक्ट को वापस भेजने का प्रयास कर रहा हूं। मैंने कई अन्य समान प्रश्नों का पालन किया है लेकिन अभी भी कुछ याद आ रहा है। कोई अपवाद नहीं फेंक दिया गया है, लेकिन मुझे ब्राउज़र में एक क्रिप्टिक <api.views.MongoEncoder object at 0x80a0c02c>
प्रतिक्रिया मिलती है। मुझे यकीन है कि यह कुछ आसान है, लेकिन किसी भी मदद की सराहना की जाएगी।मोंगो डीबी ऑब्जेक्ट जेएसओएन
फंक्शन:
from django.utils.simplejson import JSONEncoder
from pymongo.objectid import ObjectId
class MongoEncoder(JSONEncoder):
def _iterencode(self, o, markers = None):
if isinstance(o, ObjectId):
return """ObjectId("%s")""" % str(o)
else:
return JSONEncoder._iterencode(self, o, markers)
views.py:
user = User({
's_email': request.GET.get('s_email', ''),
's_password': request.GET.get('s_password', ''),
's_first_name': request.GET.get('s_first_name', ''),
's_last_name': request.GET.get('s_last_name', ''),
'd_birthdate': request.GET.get('d_birthdate', ''),
's_gender': request.GET.get('s_gender', ''),
's_city': request.GET.get('s_city', ''),
's_state': request.GET.get('s_state', ''),
})
response = {
's_status': 'success',
'data': user
}
return HttpResponse(MongoEncoder(response))
मैं अजगर 2.4 पर हूँ, pymongo, simplejson।
बिल्कुल सही! धन्यवाद। – Donnie
धन्यवाद! मुझे बहुत समय बचा है कि यह पता लगाया गया है .. –
यदि आप pymongo.objectid नहीं पा रहे हैं, तो bson.objectid आज़माएं। –