Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

418
Vistas
¿Cómo limitar el número de entradas de GeoDjango Postgis django-rest-framework query?

He creado la funcionalidad básica de mapeo de Django a través de este tutorial , pero Python sigue gastando 32 GB de RAM y/o el navegador falla, presumiblemente porque la consulta no se limita a los primeros n resultados y la base de datos tiene millones de entradas.

Mi "vietsets.py":

 from rest_framework import viewsets from rest_framework_gis import filters from core.models import Tablename from core.serializers import MarkerSerializer class MarkerViewSet(viewsets.ReadOnlyModelViewSet): bbox_filter_field = "geom" filter_backends = (filters.InBBoxFilter,) queryset = Tablename.objects.all() serializer_class = MarkerSerializer

Creo que InBBoxFilter debe elaborarse, pero los documentos no parecen mencionar más opciones. Los documentos dicen "si está usando otros filtros, querrá incluir su otro backend de filtro en su vista" dando el ejemplo, filter_backends = (InBBoxFilter, DjangoFilterBackend,) , pero solo quiero limitar la cantidad de resultados para el funcionalidad InBBoxFilter ya proporciona. ¿Puedo escribir algún tipo de DjangoFilterBackend para limitar los resultados? ¿O es mejor abordar esto a través de la funcionalidad django-rest-framework?

¿Cómo puedo decirle que limite la cantidad de resultados o que mejore el rendimiento al usar bases de datos grandes?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Cambiar a abajo. Esta paginación es compatible con restframework_gis.

 from rest_framework import viewsets from rest_framework_gis import filters from rest_framework_gis.pagination import GeoJsonPagination from core.models import Tablename from core.serializers import MarkerSerializer class MarkerViewSet(viewsets.ReadOnlyModelViewSet): bbox_filter_field = "geom" filter_backends = (filters.InBBoxFilter,) queryset = Tablename.objects.all() serializer_class = MarkerSerializer pagination_class = GeoJsonPagination

Puede actualizar su servidor o limitar el resultado (paginación). La paginación más apropiada depende de su solicitud. Puede agrupar el área por alguna regla o lo que sea.

over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar Pagination https://www.django-rest-framework.org/api-guide/pagination/

 from rest_framework import viewsets from rest_framework_gis import filters from rest_framework.pagination import PageNumberPagination from core.models import Tablename from core.serializers import MarkerSerializer class StandardResultsSetPagination(PageNumberPagination): page_size = 100 page_size_query_param = 'page_size' max_page_size = 1000 class MarkerViewSet(viewsets.ReadOnlyModelViewSet): bbox_filter_field = "geom" filter_backends = (filters.InBBoxFilter,) queryset = Tablename.objects.all() serializer_class = MarkerSerializer pagination_class = StandardResultsSetPagination # request host/api/<your_url>?page=<page_num>&page_size=<page_size> # will limit size of your response # and response will include current_page, number_of_elements and last_page.
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda