Django фильтрация временных меток с помощью параметров url
Я делаю бэкенд для инвестиционного APY на фреймворке Django rest. Я обновляю базу данных на ежедневном таймфрейме, то есть значение и временная метка APY хранится в базе данных один раз в день. Я могу просмотреть APY, используя URL ниже
Я хочу обновлять APY ежечасно и затем фильтровать результат на основе таймфрейма следующим образом Например, для часового таймфрейма я хочу использовать
и дневной таймфрейм, который я хочу использовать
http://127.0.0.1:8000/api/v1/apy/data?pair=1&interval=1440
Я пробовал использовать objects.filter, но он не помогает в моем случае.
структура файла
-- BaseApp
-> Models
- apy_model.py
-> Views
- apy_view.py
-> Urls
- apy_url.py
-> Serializer
- apy_serializer.py
apy_models.py
#-----apy_models.py-------------
from django.db import models
class priceApy(models.Model):
value = models.DecimalField(
max_digits=10, decimal_places=5, null=False, blank=False)
time = models.CharField(max_length=10, null = False, blank=False)
_id = models.AutoField(primary_key=True, editable=False)
def __str__(self):
return str(self._id)
apy_urls.py
#------apy_urls.py----------
from django.urls import path
from base.views import apy_views as views
urlpatterns = [
path('data', views.getapy, name = 'apy'),
]
apy_view.py
#-------apy_view.py---------------
from django.shortcuts import render
from rest_framework.response import Response
from rest_framework.decorators import api_view
from base.models.apy_models import *
from base.serializers.apy_serializer import *
@api_view(['GET'])
def getapy(request):
pair=request.query_params.get("pair")
if pair != None and int(pair) >= 1:
def switch_case(argument):
switcher = {
'1': priceApySerializer(priceApy.objects.all(), many=True),
}
return switcher.get(argument)
serializer = switch_case(pair)
else:
serializer = priceApySerializer([], many=True)
return Response(serializer.data)
apy_serializer
#-------apy_serializer.py------------
from rest_framework import serializers
from base.models.apy_models import *
class priceApySerializer(serializers.ModelSerializer):
class Meta:
model = priceApy
fields = ['time', 'value']