Как исправить Учебное пособие по GeoDjango? - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь выполнить GeoDjango Tutorial , используя Sqlite, как описано здесь .

Когда я вызываю load.py перестает отображаться ошибка:

Failed to save the feature (id: 206) into the model with the keyword arguments:
{'fips': 'UK', 'iso2': 'GB', 'iso3': 'GBR', 'un': 826, 'name': 'United Kingdom'
...
sqlite3.IntegrityError: NOT NULL constraint failed: world_worldborder.mpoly
...
django.db.utils.IntegrityError: NOT NULL constraint failed: world_worldborder.mpoly

Кто-нибудь знает причину этой проблемы? И как Django может управлять геометрией, импортируя все данные, включая запись «Великобритания»?

Я использую:

  • Ubuntu 18.04
  • Python 3.6.8
  • Django == 2.2.7
  • pkg-resources == 0.0.0
  • pytz == 2019.3
  • atialite ==0.0.3
  • sqlparse == 0.3.0
  • libgeos-dev == 3.6.2-1build2
  • binutils == 2.30-21ubuntu1 ~ 18.04.2
  • libproj-dev == 4.9.3-2
  • gdal-bin == 2.2.3 + dfsg-2
  • libgdal-dev == 2.2.3 + dfsg-2
  • python3-gdal == 2.2.3 + dfsg-2

1 Ответ

0 голосов
/ 09 ноября 2019

Я мог справиться только с этим, установив поле mpoly / geom null = True в models.py :

mpoly = models.MultiPolygonField(null=True)

Это не полное решение, потому что, по крайней мере, «Великобритания» была проигнорирована. Но это был очень хороший обходной путь.

Я не думаю, что есть проблема в TM_WORLD_BORDERS-0.3.shp. Кажется, есть проблема, когда Django пытается сгенерировать SQL.

...