我在 POST 请求中获取日期而不是日期和时间数据
I am getting the date instead of date and time data in a POST request
我的网站上有一个 date range picker。
当用户输入日期和时间范围时,我想在 startDate
和 endDate
表格内分别发送
daterangepicker 代码:
$('input[name="datetimes"]').daterangepicker({
timePicker: true,
timePickerIncrement: 5,
startDate: moment().startOf('hour'),
endDate: moment().startOf('hour').add(32, 'hour'),
locale: {
format: 'YYYY-MM-DD hh:mm'
},
opens: 'center',
drops: 'auto'
});
这就是我尝试过的:
$('#formid').submit(function(e) {
e.preventDefault();
let startDate = ($('#datetimes').data('daterangepicker').startDate).format('YYYY-MM-DD hh:mm');
let endDate = ($('#datetimes').data('daterangepicker').endDate).format('YYYY-MM-DD hh:mm');
$(this).append('<input type="hidden" name="start_date" value='+startDate+' /> ');
$(this).append('<input type="hidden" name="end_date" value='+endDate+' /> ');
this.submit();
});
在 this.submit();
之前,我做了一个 console.log(startDate)
,这就是我得到的:
我正在获取日期和时间(如预期的那样),但是如果我尝试在视图(django 后端)中执行 print(request.POST)
,这就是我得到的:
不知何故,在 POST
期间 HH:mm
消失了。
如何在 POST 期间保留 hh:mm
的值?
更新:
views.py
def add_new_task(request):
context = {}
context['nbar'] = 'index'
if request.method == 'POST':
print(request.POST)
return render(request, 'index.html', context)
models.py
class ToDoList(models.Model):
title = models.CharField(max_length=60)
description = models.TextField()
start_date = models.DateTimeField()
end_date = models.DateTimeField()
user = models.ForeignKey(
User,
null=True,
blank=True,
on_delete=models.SET_NULL,
)
这是一个不可能的结果,但是否有可能是您在隐藏输入中缺少 value
属性周围的双引号这一事实导致了问题?
尝试将其更改为:
$(this).append('<input type="hidden" name="start_date" value="'+startDate+'" /> ');
$(this).append('<input type="hidden" name="end_date" value="'+endDate+'" /> ');
我的网站上有一个 date range picker。
当用户输入日期和时间范围时,我想在 startDate
和 endDate
daterangepicker 代码:
$('input[name="datetimes"]').daterangepicker({
timePicker: true,
timePickerIncrement: 5,
startDate: moment().startOf('hour'),
endDate: moment().startOf('hour').add(32, 'hour'),
locale: {
format: 'YYYY-MM-DD hh:mm'
},
opens: 'center',
drops: 'auto'
});
这就是我尝试过的:
$('#formid').submit(function(e) {
e.preventDefault();
let startDate = ($('#datetimes').data('daterangepicker').startDate).format('YYYY-MM-DD hh:mm');
let endDate = ($('#datetimes').data('daterangepicker').endDate).format('YYYY-MM-DD hh:mm');
$(this).append('<input type="hidden" name="start_date" value='+startDate+' /> ');
$(this).append('<input type="hidden" name="end_date" value='+endDate+' /> ');
this.submit();
});
在 this.submit();
之前,我做了一个 console.log(startDate)
,这就是我得到的:
我正在获取日期和时间(如预期的那样),但是如果我尝试在视图(django 后端)中执行 print(request.POST)
,这就是我得到的:
不知何故,在 POST
期间 HH:mm
消失了。
如何在 POST 期间保留 hh:mm
的值?
更新:
views.py
def add_new_task(request):
context = {}
context['nbar'] = 'index'
if request.method == 'POST':
print(request.POST)
return render(request, 'index.html', context)
models.py
class ToDoList(models.Model):
title = models.CharField(max_length=60)
description = models.TextField()
start_date = models.DateTimeField()
end_date = models.DateTimeField()
user = models.ForeignKey(
User,
null=True,
blank=True,
on_delete=models.SET_NULL,
)
这是一个不可能的结果,但是否有可能是您在隐藏输入中缺少 value
属性周围的双引号这一事实导致了问题?
尝试将其更改为:
$(this).append('<input type="hidden" name="start_date" value="'+startDate+'" /> ');
$(this).append('<input type="hidden" name="end_date" value="'+endDate+'" /> ');