urls.py:
....
(r'^blog/post/$', post),
....
查看代码:
def post(request):
if request.method == 'POST':
post, created = Post.objects.get_or_create(
title=request.POST.get("title"),
text=request.POST.get("text"),
)
post_titles = [post.title for post in Post.objects.all()]
return render_to_response("index.html", {"post_titles":post_titles})
模板:
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$("input#submit").click(function() {
var title = $("#title").val();
var text = $("#text").val();
var data = {"title":title,"text":text};
$.post("/blog/post/", data, function(data){
alert("Data Loaded: " + data);
});
});
});
</script>
.........
<div id="postbox">
<form method="post" action="">
<p>Enter Title</p><input type="text" name="title" id="title">
<p>Enter Text</p><input type="text" name="text" id="text">
<input type="submit" id="submit">
</form>
</div>
我希望将帖子添加到数据库中而不刷新页面,并且“title”和“text”也会附加到html页面的某处。请告诉我我做错了什么。感谢。
答案 0 :(得分:0)
我非常幸运使用Dajax/Dajaxice,这是有充分记录的,有几个工作演示(带代码)的例子,通过jQuery集成Django和ajax。如果您给出了调试输出,我会给出更长的答案(例如,警报框是否出现;其中的文本是什么)。我的猜测是你的视图函数'index.html'的'render_to_response'不是你想要的ajax。通常,您只想从服务器(到之前呈现的页面)使用ajax发送某种结构化数据(通常是json或xml)。