django.core.exceptions.FieldDoesNotExist: BuildingAddress не имеет поля с именем «False» - PullRequest
0 голосов
/ 30 мая 2018
class BuildingAddress(models.Model):
  id = models.CharField(max_length=12,primary_key = True)
  address = models.CharField(max_length=30)
  city = models.CharField(max_length=30)
  zip = models.CharField(max_length=10)
  state = models.CharField(max_length=2)
  primpgon = models.BigIntegerField()
  numpgons = models.BigIntegerField()
  x = models.FloatField()
  y = models.FloatField()
  censusbloc = models.CharField(max_length=15)
  objectid = models.BigIntegerField()
  geom = models.MultiPolygonField(srid=4326)

и затем я пытаюсь импортировать файл формы в эту модель.Я написал следующий скрипт.

import os
from django.contrib.gis.utils import LayerMapping
from .models import BuildingAddress

no_address_mapping = {
  'id' : 'ID',
  'address' : 'Address',
  'city' : 'City',
  'zip' : 'ZIP',
  'state' : 'State',
  'primpgon' : 'PrimPgon',
  'numpgons' : 'NumPgons',
  'x' : 'X',
  'y' : 'Y',
  'censusbloc' : 'CensusBloc',
  'objectid' : 'ObjectID',
}
no_address_shp = os.path.abspath(
  os.path.join(
     os.path.dirname(__file__),
    'building/WestDV_CA_BF_NoAddress_region.shp'))

def run(verbose=True):
  lm = LayerMapping(
    BuildingAddress, no_address_shp, no_address_mapping,
    transform=False, encoding='iso-8859-1')
 lm.save(strict=True, verbose=verbose)

И затем я запускаю этот файл в оболочке.

Когда я пытаюсь запустить этот файл, я получаю ошибку django.core.exceptions.FieldDoesNotExist: BuildingAddress has no field named 'False'.Я не понимаю, почему эта ошибка произошла.Я не создаю имя поля как False.Но выбрасывает имя поля false не существует.

1 Ответ

0 голосов
/ 29 сентября 2018

Вы не добавили отображение в поле geom.Предположим, что вы хотите отобразить некоторую многогранную геометрию, ваш словарь отображения должен выглядеть так:

no_address_mapping = {
  'id' : 'ID',
  'address' : 'Address',
  'city' : 'City',
  'zip' : 'ZIP',
  'state' : 'State',
  'primpgon' : 'PrimPgon',
  'numpgons' : 'NumPgons',
  'x' : 'X',
  'y' : 'Y',
  'censusbloc' : 'CensusBloc',
  'objectid' : 'ObjectID',
  'geom': 'MULTIPOLYGON'
}
...