Estoy usando Ajax para enviar datos y, como éxito, devuelve algunos datos.
$.ajax({ method: "POST", url: "{% url 'upload-prop-images' %}", processData: false, contentType: false, mimeType: "multipart/form-data", data: fileData, success: function (data) { console.log(data); console.log(data.newCard); console.log(data.newCard.prop_name); } } })vistas.py:
def uploadPropImages(request): prop_obj = list(Property.objects.filter(user=request.user).values()) new_card = {} for obj in prop_obj: if obj['prop_name'] == prop_name: new_card['prop_name'] = obj['prop_name'] new_card['prop_address'] = obj['prop_address'] new_card['prop_type'] = obj['prop_type'] new_card['prop_images'] = '/media/' + obj['prop_images'] return JsonResponse({'status': 'Done', 'newCard': new_card}) En el primer bloque de código donde el success: function(data) {} , console.log(data) imprime los datos que estoy enviando, es decir {'status': 'Done', 'newCard': new_card} , pero cuando imprimo , console.log(data.status) o console.log(data.newCard) , obtengo un valor undefined . No puedo entender por qué se imprime undefined porque usé AJAX muchas veces antes y parece funcionar. Es cómo podemos navegar a través del valor de un diccionario en JAVASCRIPT, que en PYTHON es print(data['status']) . ¿El error está relacionado con las claves definidas dentro de la función AJAX: processData , mimeType , contentType ?
tienes que llamar a esto
$.parseJSON();Como esto
success: function (response) { var data= $.parseJSON(response); console.log(data); console.log(data.newCard); console.log(data.newCard.prop_name); }