Django Ajax Jquery Call

Aus*_*tin 7 python django ajax jquery

这可能是基本的,但我花了两天时间,阅读了无数的教程,但我仍然无法使用它.为了让它看起来有效,我试图完成一项基本任务.我想发送一个ajax调用我的捐赠视图.我看到它成功通过但我期待我的模板也会更新为"TRUE",但它仍然是"FALSE".我很欣赏任何帮助或建议.

我的jquery ......

$.ajax({
    type: "POST",
    url:"/donate/",
    data: {
    'test': 'success',
    },
    success: function(){
      alert('test')
     },
    error: function(){
        alert("Error");
});
Run Code Online (Sandbox Code Playgroud)

这是我的看法......

def donate(request):
    if request.is_ajax():
        test = "TRUE"

    if request.method == 'POST':
        form = DonateForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = DonateForm()
        test = "FALSE"

    return render_to_response('donate_form.html', {'form':form,'test':test}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

我的模板包括这个......

<h1>{{ test }}</h1>
Run Code Online (Sandbox Code Playgroud)

更新/解决方案

就像在这个问题的评论中提到的那样,我没有对返回的数据做任何事情.我将成功通话更新到以下内容并且有效

    $.ajax({
    type: "POST",
    url:"/donate/",
    data: {
    'zip': zip,
    },
    success: function(data){            

        results = $(data).find('#results').html()               
        $("#id_date").replaceWith("<span>" + results + "</span >");

    },
    error: function(){
        alert("Error");
    },
Run Code Online (Sandbox Code Playgroud)

sta*_*orn 12

我认为问题在于您传递数据的位置.你用Firebug吗?POST它是检查您是否通过任何内容的绝佳工具,它通常是Web开发的绝佳工具.

这是从表单发送Ajax调用的工作示例

$("#form").submit(function(event) {
        var $form = $(this),
        $inputs = $form.find("input, select, button, textarea"),
        serializedData = $form.serialize();

        $.ajax({
            url: "/donate/",
            type: "post",
            data: serializeData,
            success: function(response) {
                alert(response)
            }
        })
        event.preventDefault();
    });
Run Code Online (Sandbox Code Playgroud)

然后你的视图看起来像这样

if request.is_ajax() or request.method == 'POST':
        form = DonateForm(data=request.POST)
        if form.is_valid():
            return HttpResponse("Success")
        else:
            return HttpResponse("Fail")
Run Code Online (Sandbox Code Playgroud)

顺便说一句,除非你真的需要$.ajax()我所有的额外内容,我建议你使用,$.post()因为它似乎更直接使用.