2013-05-29 16 views
7

Temel olarak django'da yapılan http://www.w3schools.com/jquery/jquery_ajax_get_post.asp benzeri bir şeye ihtiyacım var. Örnekleri indirdim ve bir localhost + php ile yerel olarak test ettim ve gayet iyi çalışıyor ama örnek ne kadar basit olursa olsun django'da çalışmasını sağlayamıyorum.Django formları için basit bir çalışma ajax örneği gerekiyor

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#my_form").submit(function(){ 
    $.post("", 
    {name:"Donald Duck", 
    city:"Duckburg"}, 
    function(data,status){ 
     alert("Data: " + data + "\nStatus: " + status); 
    }) 
    .fail(function() { alert("error"); }); 
    return false; 
    }); 
}); 
</script> 

URL'ler:

url(r'^ajax/$', views.ajax_test, name="ajax"), 

görünümler:

def ajax_test(request): 
    if request.method == 'POST' and request.is_ajax(): 
     name = request.POST['name'] 
     city = request.POST['city'] 
     message = name + ' lives in ' + city 

     return HttpResponse(json.dumps({'message': message})) #tried without the json. Doesn't work either 

    return render(request, 'books/ajaxTest.html') 
İşte temelde ben bağlantısından ufak bir değişiklikle

javascript ile yukarıdaki örnek dayalı yaptığın şey

html:

Form, bir django formunu içerdiğini varsayalım, ancak temelleri çalışmaya bile başaramadığımdan, bu biraz anlamsız olurdu. Birisi csrf_token etiketinden bahsetti, ancak bunu kaldırmak da sorunu çözmüyor. Yukarıdaki örneğin çıktısı temelde sadece uyarı ('hata') ve başka bir şey vermez. Bu kadar çok örnek var ama ben bile en temel olanları bile çalışamıyorum

+0

Eğer Ajax cevabınızı Chrome Inspector veya Firefox Firebug'da inceleyerek, sizi nasıl düzeltebileceğinizi öğrenmek için bazı hata mesajlarını görmelisiniz. –

+1

JQuery: https://aliteralmind.wordpress.com/2014/09/21/jquery_django_tutorial/ – aliteralmind

cevap

8

OK..thx yorumlarınız için .. Tüm bunları sıraladım ... temelde sadece % csrf_token%} ve csrfmiddlewaretoken: '{{csrf_token}}' .. sadece bu

gibi javascript şey olacaktır this..the yeni kodlar okuma olabilir olanların yararına:

<script type="text/javascript"> 
$(document).ready(function(){ 

    $("#my_form").submit(function(){ 
    $.post("", 
    {name:"Donald Duck", 
    city:"Duckburg", 
    csrfmiddlewaretoken:'{{ csrf_token }}' 
    }, 
    function(data,status){ 
     alert("Data: " + data + "\nStatus: " + status); 
    }) 
    .fail(function(xhr) { 
     console.log("Error: " + xhr.statusText); 
     alert("Error: " + xhr.statusText); 
    }); 
    return false; 
    }); 

}); 
</script> 
Html:

html:

<form id="my_form" action="" method="post">{% csrf_token %} 
<input type="submit" value="Send"> 
</form> 
+1

Nice'i kullanarak Django'da Ajax'ı uygulama konusunda bir eğitim yazdım. Bunu gönderdiğiniz için teşekkürler. – Paul