por peticiones form enviar python ajax django jsonresponse

python - peticiones - login ajax django



¿Usar JSONResponse para serializar un QuerySet en Django 1.7? (2)

No debe volver a serializar con JsonResponse . Obtendrá una respuesta JSON formateada correctamente con:

from django.core import serializers from django.http import HttpResponse def my_view(request): my_model = MyModel.objects.all() response = serializers.serialize("json", my_model) return HttpResponse(response, content_type=''application/json'')

Si usa un JsonResponse , JsonResponse al JSON ya serializado a una cadena, que probablemente no sea lo que usted quiere.

Nota: Funciona con Django 1.10.

Vi que ahora en Django 1.7 puedo usar el objeto http.JSONResponse para enviar JSON a un cliente. Mi vista es:

#Ajax def get_chat(request): usuario = request.GET.get(''usuario_consultor'', None) usuario_chat = request.GET.get(''usuario_chat'', None) mensajes = list(MensajeDirecto.objects.filter(Q(usuario_remitente = usuario, usuario_destinatario = usuario_chat) | Q(usuario_remitente = usuario_chat, usuario_destinatario = usuario))) return JsonResponse(mensajes, safe=False)

Pero me sale el siguiente error:

<MensajeDirecto: Towi CrisTowi> no es serializable JSON`

¿Sabe cómo serializar un QuerySet para enviarlo de vuelta en forma JSON?


from django.core import serializers from django.http import JsonResponse def get_chat(request): usuario = request.GET.get(''usuario_consultor'', None) usuario_chat = request.GET.get(''usuario_chat'', None) mensajes = MensajeDirecto.objects.filter(Q(usuario_remitente = usuario, usuario_destinatario = usuario_chat) | Q(usuario_remitente = usuario_chat, usuario_destinatario = usuario)) return JsonResponse(serializers.serialize(''json'', mensajes), safe=False)

Ref: https://docs.djangoproject.com/en/dev/ref/request-response/#jsonresponse-objects https://docs.djangoproject.com/en/1.7/topics/serialization/