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, если это возможно.