我正在django制作一个有3个提交按钮的博客应用程序。
保存将由AJAX处理并更新博客中的数据。发布,发布博客并重定向到相应的页面,预览在不同的选项卡中显示预览。在预览的情况下,我可以简单地调用保存功能,然后在新选项卡中打开预览页面./所以实际上我需要通过AJAX保存。我使用下面给出的代码,我收到错误
<form id="blog_form" action="" method="post">
<!-- All the form fields are here -->
<a href="#" id="not_button" class="save_button"> Save</a>
</form>
,javascript为
var post_url = location.pathname;
$(".save_button").click(function()
{
$.ajax({
type: "POST",
url: post_url,
data: $("#blog_form").serialize(),
dataType: 'json',
success: function()
{
// display success message
$("#reply-message").html('Your message has been sent!').fadeOut(3000, function() {});
},
error: function()
{
// display failure message
$("#reply-message").html('Form not saved!').fadeOut(3000, function() {});
},
});
return false;
});
并且除了其他内容之外,视图还有这部分
def blog_form(request,author_id=None,slug=None):
if request.is_ajax():
if request.method == 'POST':
author = User.objects.get(pk=author_id)
blog = get_object_or_404(Entry, creator = author, slug = slug)
form = EntryForm(request.POST, instance = blog)
if form.is_valid():
form.save()
return_message = "Updated"
return HttpResponse(return_message,mimetype='application/javascript')
我希望这可行,但我不知道为什么我在jquery调用中收到错误。我收到失败的消息。此表单的典型网址为/blogs/1/my-blog/edit/
以下是我的urls.py文件的相关部分
url(r'^(?P<author_id>\d+)/(?P<slug>[-\w]+)/edit/$', 'blog.views.blog_form', name='edit_blog'),
修改
我在jquery中遇到的错误是parsererror
,在我解决了这个问题之后出现了一个新错误。表单仅通过ajax提交一次。如果我再次尝试提交它,它就不起作用,在重新加载页面之前没有任何反应。