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

标签 django postgresql

使用 postgresql 查询的 Django (1.11) ORM 无法比较日期。我需要 leave_date_fromleave_date_to 之间的数据。 我期待一张唱片。

我的模型如下:

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)

我的 View 查询是:

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 期望参数中有一个日期对象,但您正在向它传递字符串。所以用这个

关于使用 postgresql 查询的 Django (1.11) ORM 无法比较日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48746164/

相关文章:

sql - 200K数据库查询结果耗时太长,提速提示?

database - 将 postgres 表导出到 csv 错误

python - 在 html 页面中填写注册表单后,出现此错误并使用用户名和密码并将值存储在登录表单中

python - Django:未找到字段?

python - 用日期排序查询集

php - 如何使 pgsql 驱动程序返回整数值?

SQLAlchemy 从列中获取标签名称

node.js - 如何使用 sequelize 6 和 postgres 获得多少个打开的连接?

python - Django Rest Framework 线程安全吗?

python - Django 在模型中应用日期格式