使用 postgresql 查询的 Django (1.11) ORM 无法比较日期。我需要 leave_date_from
和 leave_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/