Вирішено: формат значення django 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)"}}]

Pointfiles

Pointfile — це структура даних, яка використовується у веб-платформі Django для зберігання інформації про веб-сайт. Pointfile містить інформацію про один веб-сайт, наприклад URL-адресу, ім’я домену та інші метадані.

Формат значень у Django

Формат значень у Django — це спосіб визначити набір значень, яких дотримуватиметься ваш проект. Це можна використовувати, щоб задокументувати філософію вашого проекту або допомогти вам прийняти рішення про те, як потрібно запускати ваш проект.

Щоб використовувати формат значень у Django, спочатку створіть модуль під назвою values. У цьому модулі ви визначите всі значення, яких дотримуватиметься ваш проект. Ви можете розмістити будь-яку документацію в цьому модулі, але наразі просто надайте йому такий вміст:

from django.conf import settings from django.core.management import call_command from django.utils import timezone def main (): # Встановити деякі глобальні параметри. налаштування . SETTINGS_MODULE = “values” # Визначте значення, яким слідує цей проект. myvalues ​​= { 'кодекс поведінки' : 'Ми прагнемо забезпечити вільний від переслідувань досвід для всіх.' , } call_command ( “echo %s > /etc/hosts” % myvalues ​​[ 'кодекс поведінки' ], timezone = timezone . now ()) if __name__ == “__main__” : main ()

Що таке світильники

Фікстури — це спосіб зберігання даних у базі даних, який можуть використовувати програми Django. Вони дозволяють визначати конкретні значення для полів у таблиці бази даних, а потім використовувати ці значення під час створення екземплярів об’єкта моделі.

Схожі повідомлення:

Залишити коментар