javascript - 如何在单击提交时从 Django 中的数据库中获取数据?
问题描述
仅当单击提交而不是页面加载时,我才需要在 HTML 上获取数据库对象。我目前有一个 AJAX 脚本在同一个表单上运行,当单击提交时,它将在文本框中输入的文本返回到 HTML 中。我希望保留此功能并添加一个新的数据检索功能。以下是我正在使用的一些代码片段:
视图.py
@csrf_exempt
def chat(request):
resps = Responses.objects.all()
context = {'resps' : resps}
return render(request, "chat.html", context)
网址.py
path('chat/', views.chat, name='chat'),
聊天.html
<form id="testForm" name="test-form" class="test-form" action="" method="POST">{% csrf_token %}
<input id="texting" name="texting" type="text" class="test-text" placeholder="Test here"/>
<div class="footer">
<input type="submit" value="SEND">
</form>
</div>
{% for r in resps %}
<div>
<p>{{r.response}}</p>
</div>
{% endfor %}
................................................
<script type="text/javascript">
$(document).on('submit','#testForm', function(e){
e.preventDefault();
$.ajax({
type : 'POST',
url : '/chat/',
data :{
text : $('#texting').val(),
csrfmiddlewaretoken: $('input[text=csrfmiddlewaretoken]').val()
},
success : function(){
// alert("Done!");
document.getElementById("userSpeaks").innerHTML = document.getElementById('texting').value;
}
});
});
</script>
任何帮助,将不胜感激。我只需要一种方法来在每次单击提交按钮时打印模型对象,而不是在页面加载时自动打印。提前致谢。
解决方案
请换行
csrfmiddlewaretoken: $('input[text=csrfmiddlewaretoken]').val()
至
csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val()
推荐阅读
- c# - 使用泛型和列表的多个构造函数
- c++ - C++20前后std::atomic的初始化
- javascript - 使用“不正确”时在 Typescript 中生成错误
- api - 如何从 VMware vCenter vSphere REST api 收集以下指标?
- python-3.x - 如果条件在张量流中的for循环执行中
- html - CSS 中如何支持自定义字体的字体粗细?
- python - 全局变量不好,但在 Python 中默认使用
- wpf - 在 XAML 中执行命令时触发动画
- asp.net-core - 创建 Service Fabric Api 服务仅允许 ASP .NET Core 2.1
- typescript - 在标记的联合中提取联合类型