I allmänhet är den bästa PostGIS-funktionen för en sådan fråga ST_DWithin() :
t.ex. alla kunder som bor inom 1000 meter från butik #1:
SELECT customers.*
FROM customers, shops
WHERE ST_DWithin(customers.the_geog, shops.the_geog, 1000)
AND shop.id = 1
ST_DWithin kommer att använda det spatiala indexet som du borde ha skapat och därför överträffa ST_Distance.
I Django verkar det finnas ett motsvarande filter som heter dwithin :
D(m=5) returnerar ett avståndsobjekt med längden 5 meter
geom är den geometri från vilken du vill beräkna avstånd till postnummerobjekt
dwithin() är funktionen som används
poly är geometriattributet för Zipcode-objekt
z = Zipcode(code=77096, poly='POLYGON(( 10 10, 10 20, 20 20, 20 15, 10 10))')