Я не думаю, что вы можете сортировать по минимальному расстоянию в геоджанго, но вы можете фильтровать по расстоянию и получать только те, которые находятся рядом с вашей точкой, а затем упорядочивать по рейтингу.
from django.contrib.gis.geos import *
pnt = Point(954158.1, 4215137.1, srid=32140)
pnt.buffer(23) #radius
business = Business.objects.filter(address__intersects=pnt).order_by('rating')
В postgis вы можете получить то, что просите, с помощью простого запроса, подобного этому:
SELECT name, rating,
ST_Distance(the_geom,ST_GeomFromEWKT('SRID=4326;POINT(19.232 91.00)') AS minDist
FROM business ORDER BY minDist,rating;