Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 比较Datetime和datetimefield django_Python_Django_Datetime_Django Models_Django Database - Fatal编程技术网

Python 比较Datetime和datetimefield django

Python 比较Datetime和datetimefield django,python,django,datetime,django-models,django-database,Python,Django,Datetime,Django Models,Django Database,我试图将项目中存储的datetime字段与datetime.date对象进行比较 下面是views.py中的代码,我在其中创建datetime.date对象的实例,并从数据库中选择项目的datetime字段,然后尝试比较它们 def Comapare(request,pk): Item = item.objects.get(id=pk) date1 = request.GET.get('date1') date2 = request.GET.get('date2')

我试图将项目中存储的datetime字段与datetime.date对象进行比较

下面是views.py中的代码,我在其中创建datetime.date对象的实例,并从数据库中选择项目的datetime字段,然后尝试比较它们

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)
def Comapare(请求,主键): Item=Item.objects.get(id=pk) date1=request.GET.GET('date1') date2=request.GET.GET('date2') 如果日期1和日期2: 如果在日期1中出现“,”: date1=列表(date1.split(',')) 其他: date1=列表(date1.split(“”)) 如果在日期2中出现“,”,则: date2=列表(date2.split(',')) 其他: date2=列表(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])) 是否在日期1之前=日期1<日期2 如果不是日期1<日期2: date1,date2=date2,date1 如果date1
当我在上面的示例中尝试比较它们时,我得到了以下错误:“我通过将datetime.date对象转换为字符串解决了问题,如下所示:

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

在将if语句中的b=my date1替换为b=my date1之后,它就开始工作了

哪一行准确地抛出了错误<代码>如果日期1?如果是的话,item.date\u created是什么格式/数据类型?item.date\u created是一个DateTimeField,是的,如果Station抛出错误,这是准确的。因此为了进行比较,我想您需要将datetime字段强制转换为datetime.date对象。你看了吗?
date1.strftime('%Y-%m-%d %H:%M')