建立一个站点,以便用户可以将主题添加到站点上,然后进行问答。使用 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/');
});
});
网址配置
#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>