django, límite generics.ListAPIView por semana del campo de filtro ingresado por el usuario
Nuevo en Django y comenzando con una API. Me gustaría que mi vista acepte un campo de conjunto de filtros y luego devuelva los datos dentro de una semana mayor a ese campo. La vista que he configurado actualmente es:
views.py
class MeterView(generics.ListAPIView):
queryset = MeterLake.objects.all()
serializer_class = MeterLakeSerializer
filter_backends = [DjangoFilterBackend]
filterset_fields = {& # 39; siteid & amp; # 39;: [& amp; # 39; exact & amp; # 39;],
& # 39; createdtimestamp & amp; # 39 ;: [& # 39; gte & # 39;],
}
luego el usuario ingresar url /?createdtimestamp=fecha
Luego me gustaría tomar la fecha ingresada por el usuario y devolver información mayor a una semana de esa fecha.
Idealmente, me gustaría usar la paginación para esto, pero no estoy seguro de cómo hacerlo.
¡Cualquier ayuda es muy apreciada!
davy.ai
Puedes usar
DjangoFilterBackend
para filtrar los datos basados en el campocreatedtimestamp
. Para retornar los datos dentro de una semana mayor a la fecha ingresada por el usuario, puedes usar el filtrolte
(menor o igual) en el diccionariofilterset_fields
.Por ejemplo, si el usuario ingresa
?createdtimestamp=date
, puedes usar el siguiente código en el diccionariofilterset_fields
:Esto retornará los datos con
createdtimestamp
mayor o igual a la fecha ingresada por el usuario y menor o igual a una semana después de la fecha ingresada por el usuario.También puedes usar la paginación para retornar los datos. Para hacer esto, puedes usar la clase
PageNumberPagination
de la libreríarest_framework
. Por ejemplo:Esto habilitará la paginación para la vista. También puedes especificar el tamaño de la página configurando el atributo
page_size
en la clasePageNumberPagination
.Para obtener más información, puedes consultar la documentación de Django REST Framework.