Django Invalid JSON Response -
the following code produces json given below. when validate json lint, invalid. doing wrong here?
  def json_candidate_get(request, model, m_id=none):      response = {'message' : 'incorrect json'}      try:          obj = model.objects.filter(pk=m_id)         ce = candidate_profiles.objects.filter(pk=m_id)         cw = candidate_company_profiles.objects.filter(pk=m_id)         response = json.dumps({  'technologiesvalue':[],'technologies': []  })       except exception e:         logging.exception("exception"+str(e))      return response      @is_login()   def candidate_create(request,m_id=none,token=none):      response_data = {'message': 'unsuccessfull'}      if token not none:         try:            if request.method == 'get':               response_data = json_candidate_get(request,candidates,m_id)               print response_data               #response_data = serializers.serialize('json', response_data)         except exception e:            logging.exception(e)       return httpresponse(response_data, content_type="application/json")   json:
{ technologiesvalue: [0] technologies: [0]  }      
the json.dumps function meant convert python objects a json string.  serializing model instances (via querysets) json strings, , json.dumps trying convert these strings json on again--it knows you've passed str objects, not these str objects represents json.
the json encoder used json.dumps knows how convert handful of built-in types:
so need convert model instances 1 of these types.  easiest solution use django.forms.models.model_to_dict on each element of querysets, so:
from django.forms.models import model_to_dict response = json.dumps({    'candidate': [model_to_dict(x) x in obj],    'candidateeducationprofile': [model_to_dict(x) x in ce],    ... )      
Comments
Post a Comment