按日期范围查询对象-错误-{TypeError}期望的字符串或类似字节的对象

时间:2019-05-07 17:35:18

标签: python django orm

我正在尝试从任务列表表中获取所有数据,其中due_data应该在今天的日期和通过URL传递的日期之间。

在Django中按日期范围过滤查询对象,显示错误-{TypeError}期望的字符串或类似字节的对象

Models.py

class TaskList(models.Model):
   id = models.AutoField(primary_key=True)
   tasks = models.CharField(max_length=1000)
   due_date = models.DateField(null=False)  # e.g. 2019-01-15 

   task_state = models.ForeignKey(States, on_delete=models.CASCADE)

    class Meta:
      db_table = 'tasklist'


Views.py
today = date.today().isoformat() 

#task_due_date - say '2019-05-13' passing as a string via url 
task_obj = TaskList.objects.filter(due_date=[today, task_due_date]) # error in this line

1 个答案:

答案 0 :(得分:1)

要为日期范围 过滤QuerySet,应使用__range lookup [Django-doc]

task_obj = TaskList.objects.filter(due_date__range=(today, task_due_date))

如果您编写due_date=...,则只需要一个字符串或date对象,或类似的东西来执行相等检查:然后,它将仅返回针对该特定对象的TaskList日期。