Estoy tratando de pasar una lista de valores numéricos (ids) de una página web a otra con la llamada jQuery ajax. No puedo entender cómo pasar y leer todos los valores en la lista. Puedo publicar y leer con éxito 1 valor pero no valores múltiples. Aquí es lo que tengo hasta ahora:Pasando la lista de valores a la vista django a través de jQuery ajax call
jQuery:
var postUrl = "http://localhost:8000/ingredients/";
$('li').click(function(){
values = [1, 2];
$.ajax({
url: postUrl,
type: 'POST',
data: {'terid': values},
traditional: true,
dataType: 'html',
success: function(result){
$('#ingredients').append(result);
}
});
});
/ingredientes/foto:
def ingredients(request):
if request.is_ajax():
ourid = request.POST.get('terid', False)
ingredients = Ingredience.objects.filter(food__id__in=ourid)
t = get_template('ingredients.html')
html = t.render(Context({'ingredients': ingredients,}))
return HttpResponse(html)
else:
html = '<p>This is not ajax</p>'
return HttpResponse(html)
Con Firebug puedo ver que la POST contiene tanto los identificadores pero probablemente en el formato incorrecto (terid = 1 & terid = 2). Entonces mi vista de ingredientes toma solo terid = 2. ¿Qué estoy haciendo mal?
EDIT: Para aclarar, necesito los valores de paso variable de ourid [1, 2] para el filtro en la vista de ingredientes.
Solo un FYI: algunos navegadores antiguos no tienen una biblioteca JSON incorporada.Usted * podría * estar mejor usando '$ .serialize' en lugar de' JSON.stringify' –