finds.dev← search

// the find

openwisp/django-rest-framework-gis

★ 1,123 · Python · MIT · updated Jun 2026

Geographic add-ons for Django REST Framework. Maintained by the OpenWISP Project.

django-rest-framework-gis adds GeoJSON serialization and spatial filtering to Django REST Framework. It's the standard choice if you have GeoDjango models and need to expose them as a GeoJSON API — point, polygon, feature collections, bounding boxes, the whole spec. Maintained by OpenWISP, which means it gets consistent releases rather than the usual abandoned-plugin fate.

GeoFeatureModelSerializer produces spec-compliant GeoJSON FeatureCollections with minimal configuration — geo_field in Meta and you're done. The filter backends (InBBoxFilter, DistanceToPointFilter, TMSTileFilter) are genuinely useful for map-driven UIs and save writing raw spatial ORM queries. Auto-mapping of GeoDjango fields since 0.9.3 means you don't need to explicitly declare GeometryField in serializers. Compatibility matrix goes back years and is kept current — Django 4.2 to 6.0 and Python 3.9 to 3.13 all covered in the current release.

DistanceToPointFilter's degree-to-meter conversion is documented as approximate with >25% error above 60° latitude — that's a silent wrong-answer bug if you forget to account for it. The filter support is pinned to django-filter 1.0 in the docs, which is years out of date; it works with newer versions but the documentation hasn't kept up. GeoJsonPagination wraps count/next/previous inside the FeatureCollection root, which breaks strict GeoJSON consumers since those fields aren't in the spec. No support for geometry write validation beyond basic type checking — malformed or topologically invalid geometries will pass through to PostGIS where they'll fail with cryptic database errors.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →