我有一个django表单,其中包含用户填写的日期字段,需要比较它们的有效性。
无论如何,以下条件总是评估为false。由于我是django的新手,我不确定这是否正确。
views.py
start_date = form_new_task.cleaned_data['start_date']
end_date = form_new_task.cleaned_data['end_date']
if start_date < date.today():
err_str = 'Start date cannot be a past date.'
elif end_date < date.today():
err_str = 'End date should be a future date.'
elif start_date == end_date:
err_str = 'Start and End date cannot be the same date.'
elif end_date < start_date:
err_str = 'End date should be beyond the Start date.'
答案 0 :(得分:0)
我建议:
# in JS file:
input_date = $("datefield").val() # or .text for this type
# Convert to second or datetime format
# Do the if else conditions
if input_date < date.today():
# Do something you want.
答案 1 :(得分:0)
请确保如果您比较两个日期时间
start_date = '2016-11-07 16:00:14.779541+05'
end_date = '2016-11-07 18:00:14.779541+05'
if start_date < end_date:
print 'yes'
else:
print 'No'
打印是,因为两个日期相同但时间不同。 这可能会导致您的代码出现问题。
确保必须比较两个日期执行以下操作:
if start_date.date() < end_date.date():
print 'yes'
else:
print 'No'
在这种情况下,它只会比较两个日期,并打印否。
答案 2 :(得分:0)
我找到了正确比较的方法。
if form_new_task.is_valid():
start_date = form_new_task.cleaned_data['start_date']
delta = start_date - date.today()
if delta.days < 0:
err_str = 'Start date cannot be a past date.'
elif delta.days == 0:
....
....