Запросить объекты по диапазону дат - Ошибка - {TypeError} ожидаемая строка или байтовоподобный объект - PullRequest
1 голос
/ 07 мая 2019

Я пытаюсь получить все данные из таблицы списка задач, где значение 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 Ответ

1 голос
/ 07 мая 2019

Чтобы отфильтровать QuerySet для диапазона дат , вы должны использовать поиск __range [Django-doc] :

task_obj = TaskList.objects.filter(<b>due_date__range</b>=(today, task_due_date))

Если вы напишите due_date=..., он просто ожидает строку или date объект, или что-то подобное для выполнения проверки на равенство: тогда он будет возвращать только TaskList s, которые должны быть получены в эту конкретную дату.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...