Django - Ayax
Django - Ayax
Hace un tiempo que vengo trabajando con Django, pero nunca he había tocado Ajax en jquery; lo cual es obligado hacer para que la Web mejore. Ahora estoy intentándolo mas no consigo que funcionen juntos. Necesito documentación y códigos testeados para probar y aprender. Espero que el tema les guste y que me ayuden.
Solo que, falto de almas en quienes verter la suya desbordante, muere ahogado el poeta.
José Martí
José Martí
Re: Django - Ayax
Lo primero que me llama la atención a la hora de ejecutar una consulta Ajax para Django es que las url de Django no se refieren en sí a un recurso en específico, por ejemplo: si se desea consultar el recurso "r.html" que se encuentra en "/static/r.html", no se pone dicha url, sino una url ficticia (podría ser "/resource") que luego llama a una vista, la cual retorna el recurso "r.html".
Pero según me han dicho Symfony tomo la misma filosofía de url, donde la url es virtual y no indica en sí misma a un recurso.
Pero según me han dicho Symfony tomo la misma filosofía de url, donde la url es virtual y no indica en sí misma a un recurso.
Solo que, falto de almas en quienes verter la suya desbordante, muere ahogado el poeta.
José Martí
José Martí
Re: Django - Ayax
He realizado algunos trabajos con Django, pero he tocado muy poco ajax, pero les comento que se habla muy bien de "Dajaxie" (creo que así se llama).
investiguen...
investiguen...
Re: Django - Ayax
Luego de un tiempo de estudio regreso al foro para que conectarme con la gente. La conexión entre Django y Ajax se realiza a través del objeto Responde que tiene que retornar una View en Django. A este Response se le puede poner una cabecera mine-type que indique el recurso que se retorna.
Solo que, falto de almas en quienes verter la suya desbordante, muere ahogado el poeta.
José Martí
José Martí
Re: Django - Ayax
Una forma muy, pero muy trivial de trabajar con Ajax en django es retornar tus consultas en formato json, una vista sencilla seria algo como:lway escribió:Luego de un tiempo de estudio regreso al foro para que conectarme con la gente. La conexión entre Django y Ajax se realiza a través del objeto Responde que tiene que retornar una View en Django. A este Response se le puede poner una cabecera mine-type que indique el recurso que se retorna.
Código: Seleccionar todo
from django.core import serializers
def ajax_city_request(request):
try:
data = serializers.serialize("json", City.objects.all())
except:
data = None
return HttpResponse(data, mimetype="application/javascript")
Otra forma mucho mas trivial es, por ejemplo, con un login:
Código: Seleccionar todo
def loginsystem(request):
if request.is_ajax():
user = authenticate(username=request.POST['username'],
password=request.POST['passwd'])
if user is not None:
if user.is_staff:
login(request, user)
return HttpResponse('4')
print 4
else:
return HttpResponse('2')
else:
return HttpResponse('3')
else:
return render_to_response('login.html',
RequestContext(request))
Código: Seleccionar todo
<script>
$("#form-login").submit(function(){
var usuario = $("#username").val();
var clave = $("#passwd").val();
var dataString = $('#form-login').serialize();
$.ajax({
type: "POST",
url: '{% url 'loginsystem' %}',
data: dataString,
success: function(msg){
if (msg == 1){
window.location = '{% url 'dashboard' %}';
}
if (msg == 4){
window.location = '{% url 'dashboard_admin' %}';
}
if (msg == 2){
$('#alert').removeClass("hide");
$('#alert').removeClass("alert-error");
$('#alert').addClass("alert-info");
$('#alertheadingmsg').html('Información');
$('#alertmsg').html('Su cuenta se encuentra desactivada');
}
if (msg == 3){
$('#alert').removeClass("hide");
$('#alert').removeClass("alert-info");
$('#alert').addClass("alert-error");
$('#alertheadingmsg').html('Error!!');
$('#alertmsg').html('Usuario y/o clave no válida');
}
}
});
return false;
});
Saludos.
Linux Registered User #530387
Fedora 24 User.
Plasma 5 User.
Fedora 24 User.
Plasma 5 User.