Riješeno: django pointfield format vrijednosti za učvršćenja

Glavni problem je što nije moguće odrediti prilagođeni format polja točaka za svjetla.

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 je podatkovna struktura koja se koristi u Django web okviru za pohranu informacija o web stranici. Pointfile sadrži informacije o jednoj web stranici, kao što su URL, naziv domene i drugi metapodaci.

Format vrijednosti u Djangu

Format vrijednosti u Djangu način je definiranja skupa vrijednosti kojih će se vaš projekt pridržavati. Ovo se može koristiti za dokumentiranje filozofije vašeg projekta ili za pomoć pri donošenju odluka o tome kako bi vaš projekt trebao biti pokrenut.

Da biste koristili format vrijednosti u Djangu, prvo izradite modul pod nazivom vrijednosti. U ovom modulu definirat ćete sve vrijednosti kojih će se pridržavati vaš projekt. U ovaj modul možete staviti bilo koju dokumentaciju koju želite, ali za sada samo dajte sljedeći sadržaj:

from django.conf import settings from django.core.management import call_command from django.utils import timezone def main (): # Postavite neke globalne postavke. postavke . SETTINGS_MODULE = “vrijednosti” # Definirajte vrijednosti koje ovaj projekt slijedi. myvalues ​​= { 'kodeks ponašanja' : 'Posvećeni smo pružanju iskustva bez uznemiravanja za sve.' , } call_command ( “echo %s > /etc/hosts” % myvalues ​​[ 'kodeks ponašanja' ], vremenska zona = vremenska zona . sada ()) if __name__ == “__main__” : main ()

Što je oprema

Fiksture su način pohranjivanja podataka u bazu podataka koju mogu koristiti Django aplikacije. Omogućuju vam definiranje specifičnih vrijednosti za polja u tablici baze podataka, a zatim korištenje tih vrijednosti kada stvarate instance objekta modela.

Povezani postovi:

Ostavite komentar