在Django中获取表单提交时间
在django中查找post/get提交的日期/时间的命令是什么?例如,有人正在提交电子邮件,我希望能够--在Django中获取表单提交时间,django,Django,在django中查找post/get提交的日期/时间的命令是什么?例如,有人正在提交电子邮件,我希望能够-- Email@example.com-time\u submitted如果您的意思是在视图中处理表单时,那么为什么不在视图中的任何位置使用datetime.datetime.now()?用户按下Submit后的毫秒数。Http get/post操作不会将时间发送到服务器,因此stevejalim提到,您可以在服务器端代码中获取a时间戳。或者,您可以传递表示用户单击/提交页面时间的附加参数。
Email@example.com-time\u submitted如果您的意思是在视图中处理表单时,那么为什么不在视图中的任何位置使用datetime.datetime.now()?用户按下Submit后的毫秒数。Http get/post操作不会将时间发送到服务器,因此stevejalim提到,您可以在服务器端代码中获取a时间戳。或者,您可以传递表示用户单击/提交页面时间的附加参数。您可以使用javascript设置参数:
$('#form1').submit(function() {
var input = $("<input>").attr("type", "hidden").attr("name", "timestamp").val(new Date().getTime());
$('#form1').append($(input));
return true;
}
$('#form1')。提交(函数(){
var input=$(“”).attr(“type”,“hidden”).attr(“name”,“timestamp”).val(new Date().getTime());
$('#form1')。追加($(输入));
返回true;
}
两种方法:
首先,您可以修改视图以创建一个字段,并在保存响应时将其添加到表单中。类似于:
if form.is_valid() :
timestamp = datetime.now()
... save it, print it, whatever...
更好的方法是在模型级别处理它,并且只为它设置一个字段
已创建\u at=models.DateTimeField(自动\u now\u add=True)
现在,当您将输入保存到数据库中时,就有了创建save()的时间方法被调用。这取决于客户端的时钟设置是否正确,这不一定是给定的。+1它也会使它容易被篡改,如果您尝试记录重要操作的时间,这可能不太好干净简单的方法,易于实现,易于查看发生了什么。在我看来,这是最好的方法就这一点而言,提交的表单可能不会创建新的表行,甚至不会由模型数据库模型支持。如果可能,它会更干净。是的,这就是为什么我给出了第一个选项…将值发送到某个地方。如果你想有创意,你仍然会使用带有子类方法(如“write to CSV”)的模型。。。