Сериализация функции SQL в Django REST

Я использую Django и Django Rest Framework для создания API.

У меня есть такая пользовательская функция PostgreSQL: myfunction(from_date, to_date)

Он просто вычисляет цифру из записей в диапазоне дат в таблице reviews.

Как я могу (безопасно!) взять from_date и to_date из параметров запроса URL, передать их функции и вернуть результат (плавающий) через API?

Я сделал простую модель для удержания поплавка, например:

class Result(models.Model):
result = models.FloatField(default=0)

class Meta:
    managed = False

В качестве альтернативы, могу ли я отказаться от функции SQL и реализовать ее непосредственно в самом Django/REST?

У меня уже есть модель для reviews. Могу ли я в представлении для result извлечь reviews из диапазона дат, вычислить его и вернуть значение в виде сериализованного ответа result?

В итоге я хочу иметь возможность завить http://my.api/result?from=2019-03-01&to=2019-04-01 и получить result.

Спасибо.


person E. Edwards    schedule 13.03.2019    source источник


Ответы (1)


вы можете просто фильтровать с помощью lte и gte в вашей review модели, и я предполагаю, что date является полем ваша модель Review, в которой вы храните записи о каждом отзыве. затем

Review.objects.filter(date__gte=from_date, date__lte=to_date)

Замените дату соответствующим именем поля вашей модели Review, а также соответствующим сериализатором.

person Shakil    schedule 13.03.2019