我正在尝试将存储在项目中的datetimefield与datetime.date对象进行比较。
这是views.py中的代码,我在其中创建datetime.date对象的实例,并从数据库中选择该项目的datetimefield并尝试进行比较。
def Comapare(request,pk):
Item = item.objects.get(id=pk)
date1 = request.GET.get('date1')
date2 = request.GET.get('date2')
if date1 and date2:
if ',' in date1:
date1 = list(date1.split(','))
else:
date1 = list(date1.split(' '))
if ',' in date2:
date2 = list(date2.split(','))
else:
date2 = list(date2.split(' '))
date1 = datetime.date(int(date1[0]), int(date1[1]), int(date1[2]))
date2 = datetime.date(int(date2[0]), int(date2[1]), int(date2[2]))
was_date1_before = date1 < date2
if not date1 < date2:
date1, date2 = date2, date1
if date1 < item.date_created:
date1 = ''
context = {
'date1':date1,
'date2':date2,
'was_date1_before': was_date1_before,
'item': Item,
}
else:
context = {}
return render(request, 'Inventory_Management/getDate.html', context)
当我在上面的示例中尝试比较它们时,出现以下错误:'datetime.date'和'DeferredAttribute'实例之间不支持'<' 我试图在互联网上搜索,但并没有真正找到任何帮助。
我从下面的html文件中获取日期
{% extends 'Inventory_Management/layout.html' %} {% block body %}
<form>
<div class="form-group">
<label for="date1">Date 1</label>
<input type="text" class="form-control" id="date1" name="date1" placeholder="Enter Date 1..">
</div>
<div class="form-group">
<label for="date2">Date 2</label>
<input type="text" class="form-control" id="date2" name="date2" placeholder="Enter Date 2..">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
{{ date1 }} <br> {{ date2 }} <br> {{ was_date1_before }} <br> Date: {{ item.date_created|date:"M D, Y" }} {% endblock %}
我尝试比较datetime.date对象和html中的fied,但这没有用。 我真的需要这个工作,非常感谢您的帮助。谢谢。
答案 0 :(得分:1)
我通过将datetime.date对象转换为字符串如下来解决了这个问题:
date1.strftime('%Y-%m-%d %H:%M')
然后在if语句中将b = my date1替换为那之后,它就可以了!