تم حلها: تنسيق قيمة django pointfield للتركيبات

تكمن المشكلة الرئيسية في أنه لا يمكن تحديد تنسيق pointfield مخصص للتركيبات.

I am trying to load a fixture in Django that has a PointField. The value is stored in the database as:
<code>SRID=4326;POINT(1.23456789 1.23456789)
</code>
The fixture file looks like this:
<code>[{'model': 'myapp.MyModel', 'pk': 1, 'fields': {'point': SRID=4326;POINT(1.23456789 1.23456789)}},]
</code>
However, I get the following error when I try to load it: 
<blockquote>
<p>django.core.serializers.base.DeserializationError: Problem installing fixture '/path/to/fixture/file': Could not load myapp_mymodel(1): (point_field) invalid input syntax for type geometry</p>
</blockquote>


A:

 Django fixtures are in JSON format, so you need to use <code>"SRID=4326;POINT(1.23456789 1.23456789)"</code>.  Also, you need to use <code>"point"</code>, not <code>"Point"</code>.  This should work:  

    [{'model': 'myapp_mymodel', 'pk': 1, 'fields': {'point': "SRID=4326;POINT(1 23)"}}]

ملفات بوينتفيلز

ملف النقطة هو بنية بيانات مستخدمة في إطار عمل ويب Django لتخزين معلومات حول موقع ويب. يحتوي ملف النقطة على معلومات حول موقع ويب واحد ، مثل عنوان URL واسم المجال والبيانات الوصفية الأخرى.

تنسيق القيم في Django

تنسيق القيم في Django هو وسيلة لتحديد مجموعة من القيم التي سيلتزم بها مشروعك. يمكن استخدام هذا لتوثيق فلسفة مشروعك ، أو لمساعدتك في اتخاذ قرارات حول كيفية تشغيل مشروعك.

لاستخدام تنسيق القيم في Django ، قم أولاً بإنشاء وحدة تسمى القيم. في هذه الوحدة ، ستحدد جميع القيم التي سيلتزم بها مشروعك. يمكنك وضع أي وثائق تريدها في هذه الوحدة ، ولكن في الوقت الحالي ، ما عليك سوى إعطائها المحتويات التالية:

من إعدادات الاستيراد django.conf من django.core.management استيراد call_command من django.utils استيراد المنطقة الزمنية def main (): # تعيين بعض الإعدادات العامة. إعدادات . SETTINGS_MODULE = “القيم” # تحديد القيم التي يتبعها هذا المشروع. myvalues ​​= {'مدونة السلوك': 'نحن ملتزمون بتوفير تجربة خالية من المضايقات للجميع.' ،} call_command (“echo٪ s> / etc / hosts”٪ myvalues ​​['مدونة السلوك']، timezone = timezone. now ()) if __name__ == “__main__”: main ()

ما هي المباريات

التركيبات هي طريقة لتخزين البيانات في قاعدة بيانات يمكن استخدامها بواسطة تطبيقات Django. إنها تسمح لك بتحديد قيم معينة للحقول في جدول قاعدة البيانات ، ثم استخدام هذه القيم عند إنشاء مثيلات لكائن النموذج.

الوظائف ذات الصلة:

اترك تعليق