用Jquery加载django表单模板

时间:2015-03-22 12:26:12

标签: jquery django

我想在Jquery弹出窗口中加载一个django模板的形式。表单在popup的div中加载正常,但是当我点击提交时没有任何反应。表单本身似乎在它自己的url上运行,但不在我尝试加载它的另一个页面的弹出窗口中。 有人知道这个问题对django和jquery来说都是新手。

我要加载到弹出窗口中的表单:

<form action="" method="POST">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Save</button>
</form> 

我的Jquery:

$(document).on('ready', function(){
    var button = $('#button');
    button.click(function(){
        $('#newsletter').load('/newsletter #newsletterform').css('display', 'block');
    });
});

我的观点:

def newsletter(request):
    recipients = Recipient.objects.order_by('adress')
    return render(request, 'newsletter/adress_list.html', {'recipients':recipients})

def add(request):
    if request.method == "POST":
        form = NewsletterForm(request.POST)
        if form.is_valid():
            recipient = form.save(commit=False)
            recipient.save()
            return redirect('/join')
    else:
        form = NewsletterForm()
    return render(request, 'newsletter/add.html', {'form': form})

我的简报应用网址:

urlpatterns = patterns('',
    url(r'^list/$', views.newsletter),
    url(r'^$', views.add, name='add'),
)

Django-CMS Url:

url(r'^newsletter/', include('newsletter.urls', 

1 个答案:

答案 0 :(得分:1)

您需要更改表单的action以指向其他网址/视图。假设add网址上存在/newsletter视图,您可以将表单更改为:

<form action="/newsletter" method="POST">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Save</button>
</form>