关于python:如何分配给Django PointField模型属性?

How to assign to a Django PointField model attribute?

嗨,我有一个Django模型,如下所示:

1
2
class Address(models.Model):
    geoCoords = models.PointField(null=True, blank=True,)

现在,我创建此模型的一个实例:

1
A = Address()

如何将A的geoCoord字段的坐标设置为(5.3,6.2)?我找不到以这种方式将点字段分配到何处的任何示例。这是一个愚蠢的简单问题。实际上,我想分配给A.geoCord的坐标来自pygeocoder。它是一个由2个元素组成的元组float。

有关Django PointFields的文档基本上不存在。


在较新版本的Django中,您可以:

1
2
from django.contrib.gis.geos import Point
pnt = Point(1, 1)

https://docs.djangoproject.com/en/1.11/ref/contrib/gis/geos/

中提供了大量示例


您可以使用:

1
2
from django.contrib.gis.geos import GEOSGeometry
A.geoCoords = GEOSGeometry('POINT(LON LAT)', srid=4326) #

其中,latlon分别表示latitudelongitudesrid是可选的,表示Spatial Reference System Identifier

您可以在此处查看有关如何绘制不同几何形状的更多信息:https://docs.djangoproject.com/en/dev/ref/contrib/gis/geos/#what-is-geos