为了账号安全,请及时绑定邮箱和手机立即绑定

在 Django 的文本区域中自动保存用户输入

在 Django 的文本区域中自动保存用户输入

PHP
慕哥9229398 2023-11-09 20:19:14
我想自动将用户输入保存在文本区域中,而不需要任何提交按钮。我正在寻找的用户界面是谷歌文档之类的东西。理想情况下,输入后应有 2-3 秒的时间间隔,以防止每次输入内容都提交请求。这是我当前的实现。模型:class ActionField(models.Model):content = models.TextField()def __str__(self):    return self.content看法:def action_view(request):all_todo_items = ActionField.objects.all()return render(request, 'action.html',              {'all_items': all_todo_items})和显示我想删除的表单和提交按钮的 html:<form action="/add/" method='post'>{% csrf_token %}    <textarea name="content" rows="30" cols="100"></textarea>    <br><br> <input type="submit" value="enter"></form>经过一些快速研究,似乎这通常是使用 AJAX 或 Jquery 完成的,但是有没有纯粹使用 Django 的简单方法?我对框架以及 html / FE 都是新手。
查看完整描述

1 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

我从来没有听说过这种可能性。Django(就像任何其他后端框架一样)只能向浏览器发送数据或从浏览器接收数据。如果浏览器端没有任何脚本,它无法以某种方式使您的浏览器发送某些内容。但是,您可以使用一个脚本:


<head>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

</head>

<body>

  <form action="/add/" method='post'>{% csrf_token %}

    <textarea name="content" rows="30" cols="100"></textarea>

    <br><br>

     <input type="submit" value="enter">

  </form>

    

  <script>

    $("textarea[name='content']").on("change", function() {

      $.ajax({

        url: '/add/', // or better {% url 'view-name-in-urls.py' %}

        method: 'POST',

        data: {

          content: $(this).val(),

          csrfmiddlewaretoken: '{{ csrf_token }}'

        }

      }).done(function(msg) {

        alert("Data saved");

      })

    });

  </script>

</body>

我知道在服务器端完成所有事情的能力非常方便并且看起来不错,但这是不可能的。您还需要学习如何在客户端处理服务器。


查看完整回答
反对 回复 2023-11-09
  • 1 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信