Riješeno: format vrijednosti django pointfielda za fiksne postavke

Glavni problem je u tome što nije moguće specificirati prilagođeni format polja pointa za fiksne postavke.

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 struktura podataka koja se koristi u Django web okviru za pohranjivanje informacija o web stranici. Tačka datoteka sadrži informacije o jednoj web stranici, kao što su URL, naziv domene i drugi metapodaci.

Format vrijednosti u Djangu

Format vrijednosti u Djangu je način da definirate skup vrijednosti kojih će se pridržavati vaš projekat. Ovo se može koristiti za dokumentiranje filozofije vašeg projekta ili da vam pomogne u donošenju odluka o tome kako bi vaš projekt trebao biti pokrenut.

Da biste koristili format vrijednosti u Djangu, prvo kreirajte modul pod nazivom values ​​. U ovom modulu ćete definirati sve vrijednosti kojih će se pridržavati vaš projekat. U ovaj modul možete staviti bilo koju dokumentaciju koju želite, ali za sada joj 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 projekat prati. 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__” : glavni ()

Šta je pribor

Fixtures su način pohranjivanja podataka u bazu podataka koju mogu koristiti Django aplikacije. Oni vam omogućavaju da definirate specifične vrijednosti za polja u tabeli baze podataka, a zatim koristite te vrijednosti kada kreirate instance objekta modela.

Slični postovi:

Ostavite komentar