Pracuję w Django 1.8. Chciałbym użyć LayerMapping import utility, aby zaktualizować istniejący model.Django: Użyj narzędzia LayerMapping do aktualizacji istniejącego modelu?
To jest mój plik modele:
class PCT(models.Model):
code = models.CharField(max_length=3, primary_key=True,
help_text='Primary care trust code')
ons_code = models.CharField(max_length=9, null=True, blank=True)
name = models.CharField(max_length=200, null=True, blank=True)
boundary = models.GeometryField(null=True, blank=True)
objects = models.GeoManager()
Mam już wiersz w modelu z code: 03V
i name: Corby
i bez granic.
Teraz chcę zaimportować niektóre granice dla tego wiersza z pliku KML. To jest moje polecenie import:
class Command(BaseCommand):
args = ''
help = 'Imports boundaries from KML.'
def handle(self, *args, **options):
filename = 'CCC_Feb2013.KML'
ds = DataSource(filename)
layer_mapping = {
'code': 'Name',
'boundary': 'Unknown'
}
lm = LayerMapping(PCT, filename, layer_mapping, transform=False)
lm.save(strict=True, progress=1, verbose=True)
Problem mam jest to, że wydaje się wytrzeć istniejący wiersz, i utworzyć nowy bez name
dziedzinie. Czy istnieje sposób na zaktualizowanie wiersza za pomocą LayerMapping, zamiast nadpisywania go?
Oto próbka KML, w przypadku to pomaga do testowania:
<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Folder>
<description><![CDATA[CCG boundary BSC]]></description>
<Placemark>
<name><![CDATA[03V]]></name>
<description><![CDATA[<br><br><br>
<table border="1" padding="0">
<tr><td>CCGcode</td><td>03V</td></tr>
<tr><td>CCGname</td><td>NHS Corby CCG</td></tr>
]]></description>
<visibility>1</visibility>
<open>0</open>
<Style><LineStyle><color>FF000000</color><width> 1</width></LineStyle>
<PolyStyle><fill>0</fill><outline>1</outline></PolyStyle></Style>
<Polygon>
<extrude>1</extrude>
<altitudeMode>clampToGround</altitudeMode>
<tessellate>1</tessellate>
<outerBoundaryIs><LinearRing>
<coordinates>
-.596387,52.496896,0
-.609296,52.508583,0...
</coordinates>
</LinearRing></outerBoundaryIs>
</Polygon>
</Placemark>
...
</Folder></kml>
Jeśli nie mogę korzystać LayerMapping, proszę mógłbyś wyjaśnić, jak importować granicę z pliku KML, bez użycia LayerMapping ?
Czy istniejący rząd uzyskać odtworzone bez 'ons_code' jak' name'? – OYRM