Решено: 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 е начин да дефинирате набор от стойности, към които вашият проект ще се придържа. Това може да се използва за документиране на философията на вашия проект или за да ви помогне да вземете решения за това как трябва да се управлява вашият проект.

За да използвате формата Values ​​в Django, първо създайте модул, наречен values. В този модул ще дефинирате всички стойности, към които ще се придържа вашият проект. Можете да поставите каквато искате документация в този модул, но засега просто му дайте следното съдържание:

от django.conf импортирайте настройки от django.core.management импортирайте call_command от django.utils импортирайте часова зона def main (): # Задайте някои глобални настройки. настройки . SETTINGS_MODULE = “стойности” # Дефинирайте стойностите, които този проект следва. myvalues ​​= { 'кодекс на поведение' : 'Ние се ангажираме да осигурим изживяване без тормоз за всички.' , } call_command ( “echo %s > /etc/hosts” % myvalues ​​[ 'кодекс на поведение' ], часова зона = часова зона . сега ()) if __name__ == “__main__” : main ()

Какво е тела

Фикстурите са начин за съхраняване на данни в база данни, която може да се използва от приложения на Django. Те ви позволяват да дефинирате конкретни стойности за полета в таблица на база данни и след това да използвате тези стойности, когато създавате екземпляри на моделния обект.

Подобни публикации:

Оставете коментар