【发布时间】:2012-05-30 11:21:36
【问题描述】:
我要在 Django 中从 AJAX 请求中获取参数,这就是我正在做的事情:
base.html:
<form method="POST">{% csrf_token %}
First name: <input type="text">
<input type="submit" value="Register" id="register">
</form>
main.js:
$(document).ready(function(){
$("#register").live("click", function(e){
$.post("/", {
name: "MY TEXT",
});
});
});
views.py:
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.core.context_processors import csrf
def home(request):
if request.method == 'POST':
print request.POST['name']
return render_to_response('registration.html', {},
context_instance=RequestContext(request))
是的,我知道此时我的 JS 没有从文本表单中获取真实数据,它只发送一个静态文本“MY TEXT”。但是当我按下按钮时,我得到 "MultiValueDictKeyError at / “在“”中找不到键“名称”
我做错了什么?
我更改了我的代码: main.js
$(document).ready(function(){
$("#register").live("click", function(e){
e.preventDefault();
$.post("/", {
name:'MY TEXT'
});
});
});
base.html:
<form method="POST">{% csrf_token %}
First name: <input type="text" name="name">
<br>
<input type="submit" value="Register" id="register">
</form>
有效,谢谢!
不过,我有两个问题:
- 在这种情况下,我在哪里发送“MY TEXT”?我提到它从名称字段返回实际数据并且不返回“我的文本”
- 页面仍在重新加载。我想让它完全是 AJAX。我的意思是创建一个 python 函数来将来自 POST 请求的数据添加到 MySQL 数据库,并将操作结果返回给 AJAX-script。一切都无需重新加载页面。我该怎么做?
【问题讨论】: