Rezolvat: formatul valorii django pointfield pentru fixtures

Problema principală este că nu este posibil să specificați un format de câmp de puncte personalizat pentru dispozitive.

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

Un fișier punct este o structură de date utilizată în cadrul web Django pentru a stoca informații despre un site web. Un fișier punct conține informații despre un singur site web, cum ar fi adresa URL, numele domeniului și alte metadate.

Format de valori în Django

Formatul Values ​​din Django este o modalitate de a defini un set de valori la care proiectul dumneavoastră va adera. Acesta poate fi folosit pentru a documenta filozofia proiectului sau pentru a vă ajuta să luați decizii cu privire la modul în care ar trebui să fie derulat proiectul.

Pentru a utiliza formatul Values ​​în Django, creați mai întâi un modul numit values ​​. În acest modul, veți defini toate valorile la care va adera proiectul dvs. Puteți pune orice documentație doriți în acest modul, dar deocamdată, doar oferiți-i următorul conținut:

din django.conf import setări din django.core.management import call_command din django.utils import timezone def main (): # Setează câteva setări globale. setari. SETTINGS_MODULE = „valori” # Definiți valorile pe care le urmează acest proiect. myvalues ​​= { 'code of conduct' : 'Ne angajăm să oferim tuturor o experiență fără hărțuire.' , } call_command ( „echo %s > /etc/hosts” % myvalues ​​[ „codul de conduită” ], fus orar = fus orar . acum ()) if __name__ == „__main__” : principal ()

Ce sunt fixtures

Fixările sunt o modalitate de stocare a datelor într-o bază de date care poate fi utilizată de aplicațiile Django. Acestea vă permit să definiți valori specifice pentru câmpurile dintr-un tabel de bază de date și apoi să utilizați acele valori atunci când creați instanțe ale obiectului model.

Postări asemănatoare:

Lăsați un comentariu