首页 > 解决方案 > django 夹具中 PointField 的格式是什么?

问题描述

假设我有以下 django 模型:

from django.db import models
from django.contrib.gis.db import models

class Location(models.Model):
    name = models.CharField(max_length=200)
    point = models.PointField()

我想从夹具加载PointField 。json夹具的点字段格式是什么?

[
    {
    "model": "myapp.Location",
    "pk": 1,
    "fields": {
        "name": "Location Number 1",
        "point": "???",
    }
  }
]

标签: jsondjangogisgeodjangodjango-fixtures

解决方案


它似乎使用众所周知的文本 (WKT) 格式

例如,以下内容适用于python manage.py loaddata myfixture.json

[
    {
    "model": "myapp.Location",
    "pk": 1,
    "fields": {
        "name": "Location Number 1",
        "point": "POINT (30 10)",
    }
  }
]

这成功地导入了类型为 的 postgresql 数据库列point geometry(Point,4326)

如果您使用的是另一种类型,例如PolygonField,那么格式大概是:

POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))

推荐阅读