【发布时间】:2011-08-18 23:05:37
【问题描述】:
我有这个 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>
每条消息都有一个文本和一个时间戳字段(自动添加)。 实际上,当您插入一条新消息时,process-page 会返回首页所有消息列表:
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 %}
但是当您点击“提交”时,其他用户可能已经发送了其他消息。我只会返回新消息。我的意思是时间戳比我在列表中看到的最后一条消息的时间戳更新的消息。我希望你能得到我。
我该怎么做?想法?
【问题讨论】: