Django фильтрация временных меток с помощью параметров url

Я делаю бэкенд для инвестиционного APY на фреймворке Django rest. Я обновляю базу данных на ежедневном таймфрейме, то есть значение и временная метка APY хранится в базе данных один раз в день. Я могу просмотреть APY, используя URL ниже

http://127.0.0.1:8000/api/v1/apy/data?pair=1

Я хочу обновлять APY ежечасно и затем фильтровать результат на основе таймфрейма следующим образом Например, для часового таймфрейма я хочу использовать

http://127.0.0.1:8000/api/v1/apy/data?pair=1&интервал=60

и дневной таймфрейм, который я хочу использовать

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']
Вернуться на верх