Ich habe das folgende Modell:
%Vor% Wie soll ich eine Abfrage nach Entfernung sortieren (Abstand ist unendlich)?
Arbeiten an PosgreSQL, GeoDjango, wenn es erforderlich ist.
Danke.
Die .distance(ref_location)
wird in django & gt; = 1.9 entfernt. Sie sollten stattdessen eine Anmerkung verwenden.
Auch sollten Sie Ihre Suche mit dem dwithin
-Operator eingrenzen, der den räumlichen Index verwendet, distance verwendet nicht den Index, der Ihre Abfrage verlangsamt:
siehe diesen Beitrag für eine Erklärung von location__dwithin=(geom, 0.02)
Wenn Sie gis nicht verwenden wollen / haben, ist hier eine Lösung (haversine distance fomula writer in django orm sql):
%Vor%PS Ändern Sie Modelle, ändern Sie den Filter in order_by, ändern Sie das Schlüsselwort und parametrisieren Sie
PS2 Für sqlite3 sollten Sie sicherstellen, dass die Funktionen SIN, COS, RADIANS, ATAN2, SQRT
verfügbar sind