我正在django中创建一个博客应用程序,该应用程序具有3个提交按钮。

  1. 发布
  2. 预习

保存由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提交一次。 如果我尝试再次提交,它将无法正常工作,直到重新加载页面后,一切都不会发生。

  ask by Sachin translate from so

本文未有回复,本站智能推荐: