【发布时间】:2016-05-08 23:50:08
【问题描述】:
我想比较两个日期时间。问题是我总是得到 False。例如:validity_date = 2016 年 1 月 31 日上午 12:43,actual_time = 2016 年 1 月 31 日下午 2:40给出 False,validity_date = 2016 年 2 月 12 日下午 4:11,actual_time = 2016 年 1 月 31 日下午 2:40也给出了 False。谢谢
#models.py
class SomeModel(models.Model):
validity_date = models.DateTimeField()
#views.py
def SomeView(request):
model_list = SomeModel.objects.all()
actual_time = datetime.datetime.now()
context = {
'model_list': model_list,
'actual_time': actual_time,
}
return render(request, 'app/sometemplate.html', context)
#in template
{% if model_list %}
{% for somemodel in model_list %}
{% if somemodel.validity_date >= actual_time %}
<td>True</td>
{% else %}
<td>False</td>
{% endif %}
{% endfor %}
{% endif %}
【问题讨论】:
-
您是否尝试将其实现为模型属性:stackoverflow.com/a/3798865/771848?
-
是的,但没有帮助。
-
使用
django.utils.timezone.now而不是datetime.datetime.now,因为这将为您提供时区感知日期时间。我认为比较可能会失败,因为您正在比较不同的类型。由于它发生在模板中,因此没有错误消息。 -
django.utils.timezone.now 帮忙了,谢谢