Перевод запроса PostGIS в Django QuerySet (geoDjango postgis) - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь выяснить, как перевести запрос PostGIS в GeoDjango:

def my_view(request, tempounix):
    conn.execute('SELECT ST_X(geom) as x, ST_Y(geom) AS y, accuracy, altitude, speed, tempounix '
        'FROM authapp_posizione '
        'ORDER BY tempounix DESC LIMIT 1;')

    x, y, accuracy, altitude, speed, timestamp = c.fetchone()

    data = {
            "geometry": {
                "type": "Point",
                "coordinates": [x, y],
             },
            "type": "Feature",
            "properties": {
                 "accuracy": accuracy,
                 "altitude": altitude,
                 "speed": speed,
                 "tempounix": tempounix,
             },  
        }
    return JsonResponse(data)

1 Ответ

0 голосов
/ 27 октября 2018

Чтобы использовать Django QuerySets и Django ORM, вам нужно определить модели и использовать их:

# models.py:
class Position(models.Model):
    geom = models.PointField(...)
    accuracy = models.IntegerField()
    altitude = models.IntegerField()
    speed = models.IntegerField()
    created_at = models.DateTimeField(auto_now_add=True, db_index=True)

А теперь:

 p = Position.objects.order_by("-created_at").first()
 if p:
     print(p.created_at, p.geom.coordinates, p.altitude)
...