Rumah >pembangunan bahagian belakang >Tutorial Python >Penyelesaian: django NotSupportedError(\'Perimeter tidak boleh menggunakan medan yang tidak diunjurkan.\')
"NotSupportedError("Perimeter tidak boleh menggunakan medan yang tidak diunjurkan.")" Ralat ini biasanya berlaku apabila anda cuba menggunakan medan yang tidak diunjurkan untuk mengira perimeter dalam Django. Terdapat dua jenis medan dalam
DjanGo: medan unjuran dan medan tidak unjur. Medan yang diunjurkan ialah medan yang mewakili maklumat geografi dalam sistem koordinat satah, manakala medan yang tidak diunjurkan ialah medan yang mewakili maklumat geografi dalam sistem koordinat elipsoid.
Jika anda melihat ralat "NotSupportedError("Perimeter cannot use a non-projected field.")" ralat, ini mungkin kerana anda cuba mengira perimeter menggunakan medan bukan unjuran. Sebagai contoh, anda mungkin melihat ralat ini jika anda menggunakan medan yang tidak diunjurkan untuk mengira perimeter angka geografi.
Untuk membetulkannya, anda perlu memastikan anda menggunakan medan unjuran untuk mengira perimeter. Contohnya, jika anda ingin mengira lilitan bulatan, anda boleh menggunakan kod berikut:
from django.contrib.GIS.measure import D # Assume that "circle" is a projected field of type Circle perimeter = circle.perimeter
Semoga contoh ini membantu anda.
Untuk menyelesaikan ralat "NotSupportedError("Perimeter tidak boleh menggunakan medan bukan unjuran.")", anda perlu memastikan medan unjuran digunakan untuk mengira perimeter.
Medan unjuran ialah medan yang mewakili maklumat geografi dalam sistem koordinat satah dan boleh digunakan untuk mengira perimeter. Contohnya, jika anda ingin mengira lilitan bulatan, anda boleh menggunakan kod berikut:
from django.contrib.GIS.measure import D # Assume that "circle" is a projected field of type Circle perimeter = circle.perimeter
Jika anda menggunakan medan yang tidak diunjurkan untuk mengira perimeter, anda perlu menukar medan ini kepada medan yang diunjurkan. Contohnya, jika anda ingin menukar medan yang tidak diunjurkan kepada medan yang diunjurkan, anda boleh menggunakan kod berikut:
from django.contrib.gis.measure import D # Assume that "circle" is a non-projected field of type Circle perimeter = circle.transfORM(4326, clone=True).perimeter
Semoga maklumat ini dapat membantu anda.
Ya, berikut adalah contoh:
Andaikan anda mempunyai model Django yang mengandungi medan bulat seperti ini:
from django.db import models from django.contrib.gis.db import models as gis_models class MyModel(models.Model): circle = gis_models.CircleField()
Anda kemudian boleh menggunakan kod berikut untuk mencipta objek MyModel baharu dan menetapkan lilitan bulatan pada medan bulatan:
from django.contrib.gis.geos import Point from django.contrib.gis.measure import D # Create a point point = Point(x=1.0, y=2.0) # Create a circle with radius of 10 meters circle = point.buffer(D(m=10)) # Create a new MyModel object and set the circle field my_model = MyModel(circle=circle) my_model.save()
Perhatikan bahawa kod di atas menggunakan kelas Point untuk mencipta pusat bulatan dan kaedah penimbal() untuk mencipta bulatan. Kelas D juga digunakan untuk menentukan jejari bulatan.
Semoga contoh ini membantu anda.
Atas ialah kandungan terperinci Penyelesaian: django NotSupportedError(\'Perimeter tidak boleh menggunakan medan yang tidak diunjurkan.\'). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!