সীমাবদ্ধতা ফেলে এসকিউএল:
ALTER TABLE myapp_mymodel DROP CONSTRAINT enforce_geotype_mygeom;
বা বহুভুজ এবং মাল্টিপলিগন উভয়কেই অনুমতি দেওয়ার জন্য এটি পরিবর্তন করতে:
ALTER TABLE myapp_mymodel DROP CONSTRAINT enforce_geotype_mygeom;
ALTER TABLE myapp_mymodel ADD CONSTRAINT enforce_geotype_mygeom CHECK (geometrytype(mygeom) = 'POLYGON'::text OR geometrytype(mygeom) = 'MULTIPOLYGON'::text OR mygeom IS NULL);
এই এসকিউএল বিবৃতিগুলি একটি দক্ষিণ মাইগ্রেশন বা একটি প্রাথমিক-ডেটা এসকিউএল স্ক্রিপ্ট থেকে চালানো যেতে পারে ।
আরেকটি বিকল্প হ'ল এটি GeometryField
আপনার জাজানো মডেল সংজ্ঞাতে একটি করে তোলা - এটি এটিকে কোনও জ্যামিতির ধরণের সঞ্চয় করতে দেয়।
বা, save()
সবকিছুকে একটি মাল্টিপলিগন হিসাবে বাধ্য করতে আপনার মডেলটির পদ্ধতিটি ওভাররাইড করুন :
from django.contrib.gis.db import models
from django.contrib.gis import geos
class MyModel(models.Model):
mygeom = models.MultiPolygonField()
... other fields....
def save(self, *args, **kwargs):
# if mygeom ends up as a Polgon, make it into a MultiPolygon
if self.mygeom and isinstance(self.mygeom, geos.Polygon):
self.mygeom = geos.MultiPolygon(self.mygeom)
super(MyModel).save(*args, **kwargs)