Išspręsta: django taškinio lauko vertės formatas šviestuvams

Pagrindinė problema yra ta, kad neįmanoma nurodyti pasirinktinio taško lauko formato šviestuvams.

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)"}}]

Taškiniai failai

Taškinis failas yra duomenų struktūra, naudojama Django žiniatinklio sistemoje informacijai apie svetainę saugoti. Taškiniame faile yra informacijos apie vieną svetainę, pvz., URL, domeno pavadinimą ir kitus metaduomenis.

Vertybių formatas Django

Vertybių formatas Django yra būdas apibrėžti verčių rinkinį, kurio laikysis jūsų projektas. Tai gali būti naudojama jūsų projekto filosofijai dokumentuoti arba padėti priimti sprendimus dėl projekto vykdymo.

Norėdami naudoti Django reikšmių formatą, pirmiausia sukurkite modulį, pavadintą reikšmės . Šiame modulyje nustatysite visas reikšmes, kurių laikysis jūsų projektas. Į šį modulį galite įdėti bet kokią norimą dokumentaciją, tačiau kol kas tiesiog pateikite jam tokį turinį:

iš django.conf importuoti nustatymus iš django.core.management importuoti call_command iš django.utils importuoti laiko juostą def main (): # Nustatykite kai kuriuos visuotinius nustatymus. nustatymai . SETTINGS_MODULE = "reikšmės" # Apibrėžkite reikšmes, kuriomis vadovaujasi šis projektas. myvalues ​​= { 'elgesio kodeksas' : 'Esame įsipareigoję visiems teikti patirtį be priekabiavimo.' , } call_command ( "echo %s > /etc/hosts" % myvalues ​​[ 'elgesio kodeksas' ], laiko juosta = laiko juosta . dabar ()) if __name__ == "__main__" : pagrindinis ()

Kas yra armatūra

Fixtures yra duomenų saugojimo būdas duomenų bazėje, kurį gali naudoti „Django“ programos. Jie leidžia apibrėžti konkrečias duomenų bazės lentelės laukų reikšmes ir tada naudoti tas reikšmes, kai kuriate modelio objekto egzempliorius.

Susijusios naujienos:

Palikite komentarą