如何使用 AJAX 和 jQuery 发布 django 表单

2023-11-27

我已经检查了大量关于 django AJAX 表单的教程,但是每个教程都告诉您一种实现方法,没有一个是简单的,而且我有点困惑,因为我从未使用过 AJAX。

我有一个名为“note”的模型,它的模型表单,在模板内,每次 note 元素发送 stop() 信号(来自 jQuery Sortables)时,django 都会更新对象。

我当前的代码:

views.py

def save_note(request, space_name):

    """
    Saves the note content and position within the table.
    """
    place = get_object_or_404(Space, url=space_name)
    note_form = NoteForm(request.POST or None)

    if request.method == "POST" and request.is_ajax:
        msg = "The operation has been received correctly."          
        print request.POST

    else:
        msg = "GET petitions are not allowed for this view."

    return HttpResponse(msg)

JavaScript:

function saveNote(noteObj) {
    /*
        saveNote(noteObj) - Saves the notes making an AJAX call to django. This
        function is meant to be used with a Sortable 'stop' event.
        Arguments: noteObj, note object.
    */
    var noteID = noteObj.attr('id');

    $.post("../save_note/", {
        noteid: noteID,
        phase: "Example phase",
        parent: $('#' + noteID).parent('td').attr('id'),
        title: $('#' + noteID + ' textarea').val(),
        message: "Blablbla",
    });
}

当前代码从模板获取数据并将其打印在终端中。我不知道如何操纵这些数据。我见过有人通过jqueryforms管理数据,将数据发送到django。

如何访问 AJAX 发送的数据并更新注释对象?


既然您使用的是 jQuery,为什么不使用以下内容:

<script language="JavaScript">
    $(document).ready(function() {
        $('#YOUR_FORM').submit(function() { // catch the form's submit event
            $.ajax({ // create an AJAX call...
                data: $(this).serialize(), // get the form data
                type: $(this).attr('method'), // GET or POST
                url: $(this).attr('action'), // the file to call
                success: function(response) { // on success..
                    $('#DIV_CONTAINING_FORM').html(response); // update the DIV 
                }
            });
            return false;
        });
    });
</script>

EDIT

正如评论中指出的,有时上述方法不起作用。所以请尝试以下操作:

<script type="text/javascript">
    var frm = $('#FORM-ID');
    frm.submit(function () {
        $.ajax({
            type: frm.attr('method'),
            url: frm.attr('action'),
            data: frm.serialize(),
            success: function (data) {
                $("#SOME-DIV").html(data);
            },
            error: function(data) {
                $("#MESSAGE-DIV").html("Something went wrong!");
            }
        });
        return false;
    });
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 AJAX 和 jQuery 发布 django 表单 的相关文章

随机推荐

  • 我的网站的移动版,什么设计宽度是最佳的? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我要创建移动版本的网站 设计时应该选择什么宽度 我知道每个设备都有自己的屏幕宽度 并且很难适应所有设备 我真的很困惑 对移动网站世界来说相当陌生 请帮忙 谢谢 您的方法将取决于您想要 或可
  • Node.js 有模板引擎吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在尝试使用 Node
  • 删除 iOS UIBarButtonItem 的标题文本

    我想做的是从 后退 按钮中删除文本UIBarButtonItem 在导航栏上只留下蓝色 V 形 请记住 我正在针对 iOS 7 进行开发 我尝试了多种方法 包括但不限于 这是我不喜欢的图像方法 图像看起来不合适 UIBarButtonIte
  • 在 jupyter 中使用带有 bash 魔法的 python 变量

    我想使用 jupyter 笔记本中运行 bash 命令 bash魔术命令并传递 python 变量 如中所述这个帖子我可以这样做 bash s foo bar cp 1 2 这很好用 然而 当我有一堆这些变量并且 bash 命令很长时 使用
  • MediaRecorder 启动失败:-38

    我搜索了一下这个问题是否没有重复 我看到有些没有答案 有些没有帮助 这是我的代码 private void startRecording mRecorder new MediaRecorder mRecorder setAudioSourc
  • 如何捕获 printf 的输出?

    我正在调用一个函数funcB from funcA funcB使用几个printf语句来输出数据 有没有办法让我通过捕获该数据funcA 我无法修改funcB funcB printf s My Name is printf s I lik
  • 自动重构工具可以找到类似的 Java/Javascript 重复源代码吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找一个工具来查找重复或similarJava Javascript 代码 我无法说出 的确切定义 similar 但我希望该工具足够智能 并
  • Elasticsearch在php中匹配子字符串

    下面给出的是我使用elasticsearch生成索引的代码 索引已成功生成 基本上我用它来根据电影名称 演员名称和基因生成自动建议 现在我的要求是 我需要将子字符串与特定字段相匹配 如果我使用 这工作正常 params body query
  • webdriver 的官方定位器策略

    In the 官方 W3C Webdriver 文档 明确指出了位置策略是 State Keyword CSS selector css selector Link text selector link text Partial link
  • 如何对 Windows 窗体单选按钮进行分组?

    如何对 Windows 窗体应用程序中的单选按钮进行分组 很像 ASP NET 的单选按钮列表 所以我可以在从选项中选择的每种情况之间进行切换 将一个组的所有单选按钮放入容器对象中 例如Panel or a GroupBox 这将在 Win
  • 将字符串化的字典列表转换回字典列表

    我知道要将字典转换为字符串 从字符串转换 我使用json loads and json dumps 但是 当给定表示字典列表的字符串时 这些方法会失败 例如 sample entry type test topic obama interv
  • 将 UpdatePanel 替换为 JQuery

    我使用 UpdatePanel 异步调用页面中的按钮单击事件 该事件调用另一个类中的方法 该方法在输出上写出 XML 文件 有没有办法用 JQuery 而不是 UpdatePanel 来做到这一点 使用 jQuery 来处理点击事件 然后在
  • 实体框架可以在没有交集对象的情况下处理多对多关系吗?

    使用数据库优先模型 假设我们有经典表Student Course and StudentCourse 后者显然有FKsStudent and Course 如果将此模型导入 EF 您将为每个模型生成一个对象 这Student and Cou
  • 服务限制默认值?

    Hi 根据这个link默认值WCF 4 0这是 最大并发会话数 16 处理器数量 最大并发会话数 MaxConcurrentCalls MaxConcurrentSessions 100 处理器计数 最大并发会话数 100 处理器数量 我知
  • 从 gevent-subprocess 获取实时标准输出?

    我试图通过 POPEN 立即获取进程的标准输出 使用 gevent 1 0 readline 和 read 仍然会阻塞进程并等待进程完成 有什么线索吗 是的 我到处寻找一个简单的解决方案 没有线程它必须是可能的 对吗 import geve
  • Isabelle/HOL 验证器核心

    Question Isabelle HOL验证器的核心算法是什么 我正在寻找方案元循环评估器级别的东西 澄清 我只对Verifier 而不是自动定理证明的策略 Context 我想从头开始实现一个简单的证明验证器 纯粹出于教育原因 而不是用
  • 使用 Chrome API 时未检查runtime.lastError

    I use chrome fileSystem我的应用程序中用于打开文件的 API 当我点击Cancel文件选择器对话框的按钮时 出现错误 未选中runtime lastError在跑步的时候fileSystem chooseEntry 用
  • 使用GSON读写数据

    我正在努力寻找一个关于如何使用 GSON 在我的 Android 应用程序中读取和写入数据的好例子 有人可以向我展示或指出一个很好的例子吗 我用它来保持活动之间的数据持久性 我的教授举了这个例子来写作 Vector v new Vector
  • T-SQL:如何仅更新日期时间字段的日期部分?

    在 SQL Server 2008 中 我只需要更新日期时间字段的日期部分 在我的存储过程中 我收到日期时间格式的新日期 我必须从这个参数中提取日期 对时间不感兴趣 并更新现有值日期部分 我怎样才能做到这一点 一种方法是将日期之间的天数差异
  • 如何使用 AJAX 和 jQuery 发布 django 表单

    我已经检查了大量关于 django AJAX 表单的教程 但是每个教程都告诉您一种实现方法 没有一个是简单的 而且我有点困惑 因为我从未使用过 AJAX 我有一个名为 note 的模型 它的模型表单 在模板内 每次 note 元素发送 st