Django select objects where field is in range

У меня есть модель django под названием MyModel, которая имеет два поля:

a = models.IntegerField(...)
b = models.DateTimeField(...)

Я хотел бы выбрать все MyModel, которые имеют значение a между 0 и 10. Например:

results = [obj for obj in MyModel.objects.all() if 0 <= obj.a <= 10]

Это работает, но требует перебора каждой строки в Python и не является эффективным.

В качестве дополнения к этому, как я могу выполнить аналогичный запрос для поля b, выбирая каждый объект, который имеет время в течение последних 15 минут. Вот как я бы написал запрос на SQL:

SELECT * FROM appname_mymodel WHERE TIMESTAMPDIFF(MINUTE, b, CURRENT_TIMESTAMP) <= 15;

Я хотел бы получить способ написания этого запроса на python + django, если это возможно.

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