用户输入未使用Javascript保存在模型中

时间:2012-11-01 06:29:27

标签: javascript jquery python html django

构建网站,以便用户可以在网站上添加主题,然后询问Q& A.使用AJAX,主页上的“添加媒体”按钮将我的添加媒体表单(文本和图像)加载到站点。该框使用正确的表单呈现正常,但在点击提交后,表单不会保存在数据库中。当只是在没有jquery的情况下将表单呈现到新的HTML页面时,模型工作正常并且保存输入。如何将在jquery灯箱中提交的信息保存到数据库中?

所以这是html页面

#home.html
<a href="#login-box" class="btn btn-success">Add Media</a>  
        <div id="login-box" class="addmovie-popup">

这是与之相关的jquery

#home.js
$(document).ready(function() {
    $('.block3 a').click(function(ev) {
        ev.preventDefault();
        var url = $(this).attr('href');
        $('#login-box').load('http://127.0.0.1:8000/home/add_movie/');
    });
}); 

网址conf

#urls.py
url(r'^add_media/$', 'add_media'),

添加媒体的视图

#views.py
def add_media(request):
    if request.method == "POST":
        form = MediaForm(request.POST, request.FILES)   
        if form.is_valid():
            form.save(user = request.user)
            return HttpResponseRedirect("/home//")
    else:
        form = MediaForm()
        return render_to_response("qanda/add_media.html", {'form': form}, context_instance = RequestContext(request))

正在呈现的HTML表单

#add_media.html
<h1> Add Media:</h1>
<form enctype = "multipart/form-data" action = "" method = "post">{% csrf_token %}
    {{ form.as_p }}
    <input type = "submit" value = "Add" />
    <input type = "hidden" name = "next" value = "{{ next|escape }}" />
</form>

1 个答案:

答案 0 :(得分:0)

如果您正在动态地将HTML加载到页面中action = ""将指向当前页面,这显然无法处理您的POST请求。

将操作设置为正确的URL。