比较视图

时间:2017-06-01 02:39:19

标签: django django-forms django-views

我有一个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.'

3 个答案:

答案 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:
        ....
        ....