使用postgresql查询的Django(1.11)ORM无法比较日期
使用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
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”)
那么你现在正在获取数据吗??如果没有,你能显示你的用户价值和你是如何查询它的吗?你的解决方案部分得到了工作,请接受编辑,我会回答。谢谢