微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

比较Datetime和datetimefield django

如何解决比较Datetime和datetimefield django

我正在尝试将存储在项目中的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,但这没有用。 我真的需要这个工作,非常感谢您的帮助。谢谢。

解决方法

我通过将datetime.date对象转换为字符串如下来解决了这个问题:

date1.strftime('%Y-%m-%d %H:%M')

然后在if语句中将b = my date1替换为那之后,它就可以了!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。