使用postgresql查询的Django(1.11)ORM无法比较日期

使用postgresql查询的Django(1.11)ORM无法比较日期,django,postgresql,Django,Postgresql,使用postgresql查询的Django(1.11)ORM无法比较日期。我需要从到的leave\u date\u之间的数据。 我在等一张唱片 我的模型如下: class EmployeeLeaveApp(models.Model): user = models.ForeignKey(User, models.DO_NOTHING, on_delete=models.CASCADE) leave_date_from = models.DateField(blank=True, n

使用postgresql查询的Django(1.11)ORM无法比较日期。我需要从到的
leave\u date\u之间的数据。
我在等一张唱片

我的模型如下:

class EmployeeLeaveApp(models.Model):
    user = models.ForeignKey(User, models.DO_NOTHING, on_delete=models.CASCADE)
    leave_date_from = models.DateField(blank=True, null=True)
    leave_date_to = models.DateField(blank=True, null=True)
我的视图查询是:

inputdate = '2018-03-05'
duplicateleave = crm_models.EmployeeLeaveApp.objects.filter(
    leave_date_from__gte=inputdate,
    leave_date_to__lte=inputdate,
    user=user)
我的表格数据如下:

leave_date_from | leave_date_to | user
2018-03-01      | 2018-03-10    | 1
2018-03-07      | 2018-03-22    | 1
到目前为止,我尝试了很多解决方案,但没有成功

from datetime import datetime    
inputdate = datetime.strptime(inputdate, '%Y-%m-%d')    
duplicateleave = crm_models.EmployeeLeaveApp.objects.filter(
    leave_date_from__gte=inputdate,
    leave_date_to__lte=inputdate,
    user=user
)
===或===如果出现错误
必须是str,而不是datetime。然后使用date

inputdate = datetime.strptime(str(inputdate), '%Y-%m-%d')
duplicateleave = crm_models.EmployeeLeaveApp.objects.filter(
    leave_date_from__gte=inputdate,
    leave_date_to__lte=inputdate,
    user=user
)

django希望参数中有一个dateobject,但您正在向它传递字符串。所以使用这个

这个查询现在得到了什么?没有从这个查询中得到任何行。对于这个查询,我应该得到一行。您需要两个不同的日期进行比较。@sakthiselvam为什么?我需要检查输入(日期)是否在特定记录之间。不,不工作。虽然我从SO尝试了此解决方案。您如何传递用户参数?你能展示一下吗?我正在使用REST框架,所以由于你的解决方案,我得到了一个错误,所以我将它转换为str,比如
inputdate=datetime.strtime(str(inputdate),“%Y-%m-%d”)
那么你现在正在获取数据吗??如果没有,你能显示你的用户价值和你是如何查询它的吗?你的解决方案部分得到了工作,请接受编辑,我会回答。谢谢