0
我有这个Django应用程序:阿贾克斯只返回新信息
与一个领域的顶尖发送消息到数据库的表单的页面时,它下面的全局消息列表。
<body>
<form id="messageForm" action="" method="post">
{{ form.as_p }}
<input type="submit" id="go" name="go" value="Go!">
</form>
<div id="msg_list">
<ul id="update">
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
</div>
</body>
当你点击提交:
<script>
$(document).ready(function() {
$("#messageForm").submit(function(event) {
event.preventDefault();
data = $("#id_text").val()
dataString = "text=" + data
$.ajax({
type: "POST",
url: "/sendmsg/",
data: dataString,
success: function(html) {
$("#update").html(html);
$("ul#update li:first").hide()
$("ul#update li:first").slideToggle("slow");
}
});
return false;
});
});
</script>
每个消息具有文本和时间戳字段(自动添加)。 其实,当你插入一个新的消息,该过程页面返回到主页消息的所有名单:
if form.is_valid():
form.save()
messages = Message.objects.all()
render(request, 'message_list.html', {'messages': messages})
这message_list.html
{% for message in messages reversed %}
<li>{{ message }}</li>
{% endfor %}
但是,当你点击“提交”,其他用户可能已经发送了其他消息。我只会返回新消息。我的意思是消息的时间戳比我能在列表中看到的最后一条消息的时间戳更新。我希望你能得到我。
我该怎么做?想法?
不,我想返回一个消息列表比我可以在页面中的消息列表中看到的最后一个更新。 – 2011-05-05 12:27:48
然后传入页面上的最后一条消息,并过滤它的时间戳。 – zeekay 2011-05-05 16:32:10
窗体有两个字段?短信和?最后一条消息的ID? – 2011-05-05 18:40:06