Ваша переменная book
уже отфильтрована на user=uid
, чтобы получить все заказы для пользователя, попробуйте отфильтровать этот набор результатов, чтобы ограничить даты:
user = User.objects.get(id=uid)
book = booking.objects.filter(user=user)
books = book.filter(created__lt=datetime.date.today())
(обратите внимание на изменение с datetime.today()
to datetime.date.today()
)
Вы также можете использовать контекст Django _set
, чтобы получить все книги для пользователя вместо явного использования filter
(Django автоматически создаст связанное имя как имя ссылочной модели с суффиксом _set
, которое вы можете использовать для захвата всех связанных объектов - в вашем случае это будет называться booking_set
):
user = User.objects.get(id=uid)
books = user.booking_set.all()
В качестве отступления, использование filter
для объекта набора запросов просто возвращает другой набор запросов, так что вы можете связать их вместе. Таким образом, вы можете сделать что-то вроде этого, если хотите:
books = User.objects.get(id=uid).booking_set.all().filter(created__lt=datetime.date.today())
Вы должны прочитать этот раздел документации, он объяснит всю механику сохранения и извлечения записей из БД : https://docs.djangoproject.com/en/3.0/topics/db/queries/