尝试使用Django

时间:2017-02-02 02:20:52

标签: jquery python ajax django

我试图通过django使用ajax获取输入值不起作用我希望你能帮助我我一整天都看到了代码而且我没有找到错误。

它假设通过警告窗口给出值。

views.py

def form(request):
    return render_to_response('prueba2.html')

from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def form_ajax(request):
    if request.is_ajax() and request.method == 'POST':
        nombre = request.POST['nombre']
        return HttpResponse(nombre)

file.html

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function() {

$(document).on('submit', '#fomulario', function(e){
    e.preventDefault();

    $.ajax({
        type:'POST',
        url:'http://127.0.0.1:8000/form_ajax/',
        async: 'true',
        data: $('#nombre').val(),       

        success: function(data) {
                alert(data)
            },  

    });

})  


});
</script>

</body>

<form id="fomulario"> 
<label for="Nombre">Nombre</label>
<input type="text" name="nombre" id="nombre" value="hola">
<input type="submit">
</form>

<div id="valor"></div>

</html>

如果我做这样的事情,所有人都认为工作正常:

views.py

   def form(request):
        return render_to_response('prueba2.html')

    from django.views.decorators.csrf import csrf_exempt
    @csrf_exempt
    def form_ajax(request):
        if request.is_ajax() and request.method == 'POST':
            #nombre = request.POST['nombre']
            return HttpResponse('HELLO THIS IS ME...')

我认为django没有取输入名称的值。

你知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您应该设置参数名称。

 $.ajax({
    type:'POST',
    url:'http://127.0.0.1:8000/form_ajax/',
    async: 'true',
    data: {nombre: $('#nombre').val()},       

    success: function(data) {
        alert(data)
    },  

});