Не удается преобразовать ключевое слово 'available_from_gte' в поле. Варианты: available_from, available_till, id, room, room_id

У меня есть следующие модели.

class Room(models.Model):
    room_number =  models.PositiveSmallIntegerField(
        validators=[MaxValueValidator(1000), MinValueValidator(1)],
        primary_key=True
        )

class TimeSlot(models.Model):
    room = models.ForeignKey(Room, on_delete=models.CASCADE)
    available_from = models.TimeField()
    available_till = models.TimeField()

Вот мой views.py

    keys = ['room', 'available_from_gte', 'available_till_lte']
    values = [room_obj, available_from, available_till]
    # room_obj contains object of Room model. available_from and available_till contains time in 02:00:00 format.
    parameters = {}
    for key, value in zip(keys, values):
        if value is not None and value !=[] and value != '':
            parameters[key] = value

    time_slots_list = TimeSlot.objects.filter(**parameters)

При выполнении приведенного выше кода я получаю следующую ошибку.

Cannot resolve keyword 'available_from_gte' into field. Choices are: available_from, available_till, id, room, room_id

Может ли кто-нибудь помочь мне с этим?

Я полагаю, что вы ищете available_from__gte. Обратите внимание на двойное подчеркивание перед gte. Доступ к связанным полям и поиск, например, in и gte обозначаются двумя знаками подчеркивания в именах полей.

Вернуться на верх