我正在尝试使用GeoDjango的LayerMapping功能将我的KML文件导入模型.我正在进行测试,在进行常规导入时没有问题.但是,我最近在我的模型中添加了一个外键.我的模型叫做PlaceMark,它现在有一个名为Layer的模型的FK.我想要
这是我如何从shell测试和相关的错误:
>>>from locator import load
>>>load.run()
...
TypeError: ForeignKey mapping must be of dictionary type.
....
Run Code Online (Sandbox Code Playgroud)
这是我的load.py档案:
import os
from django.contrib.gis.utils import LayerMapping
from models import PlaceMark
placemark_mapping = {
'name' : 'Name',
'description' : 'Description',
# This line below is the one that is suspect #
'layer': 'Layer',
'geom' : 'POINT25D',
}
placemark_kml = os.path.abspath(os.path.join(os.path.dirname(__file__), 'data/claim.kml'))
def run(verbose=True):
lm = LayerMapping(PlaceMark, placemark_kml, placemark_mapping,
transform=False, encoding='iso-8859-1')
lm.save(strict=True, verbose=verbose)
Run Code Online (Sandbox Code Playgroud)
KML文件:
<?xml version="1.0" encoding="Windows-1252"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Folder> …Run Code Online (Sandbox Code Playgroud)