मैं Django 1.8 में काम कर रहा हूं। मौजूदा मॉडल को अपडेट करने के लिए मैं LayerMapping import utility का उपयोग करना चाहता हूं।Django: मौजूदा मॉडल को अपडेट करने के लिए लेयरमैपिंग का उपयोग करें?
यह मेरा मॉडल फ़ाइल है:
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()
मैं पहले से ही code: 03V
और name: Corby
है, और कोई सीमा के साथ मॉडल में एक पंक्ति है।
अब मैं इस पंक्ति के लिए केएमएल फ़ाइल से कुछ सीमाएं आयात करना चाहता हूं। यह मेरा आयात आदेश है:
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)
समस्या मैं आ रही है कि इस मौजूदा पंक्ति पोंछ, और कोई name
क्षेत्र के साथ एक नया बनाने के लिए लगता है। क्या लेयरमैपिंग का उपयोग करके पंक्ति को अद्यतन करने का कोई तरीका है, इसे ओवरराइट करने के बजाए?
यहाँ के एम एल का एक नमूना, मामले में इस परीक्षण के लिए मदद करता है है:
<?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>
अगर मैं LayerMapping उपयोग नहीं कर सकते, तो कृपया आप KML फ़ाइल से सीमा आयात करने का तरीका समझा सकता है, LayerMapping का उपयोग किए बिना ?
मौजूदा पंक्ति निर्मित हो करता ons_code' 'बिना रूप में अच्छी तरह के रूप में' name'? – OYRM