Ratkaistu: django-pistekentän arvomuoto kalusteille

Suurin ongelma on, että kalusteille ei ole mahdollista määrittää mukautettua pistekenttämuotoa.

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

Pistetiedostot

Pistetiedosto on tietorakenne, jota käytetään Django-verkkokehyksessä verkkosivuston tietojen tallentamiseen. Pistetiedosto sisältää tietoja yksittäisestä verkkosivustosta, kuten URL-osoitteen, toimialueen nimen ja muita metatietoja.

Arvojen muoto Djangossa

Arvot-muoto Djangossa on tapa määrittää joukko arvoja, joita projektisi noudattaa. Tätä voidaan käyttää dokumentoimaan projektisi filosofiaa tai auttamaan sinua tekemään päätöksiä siitä, miten projektisi tulisi toteuttaa.

Jos haluat käyttää Arvot-muotoa Djangossa, luo ensin arvot-niminen moduuli. Tässä moduulissa määrität kaikki arvot, joita projektisi noudattaa. Voit laittaa mitä tahansa dokumentaatiota tähän moduuliin, mutta toistaiseksi anna sille vain seuraava sisältö:

osoitteesta django.conf tuo asetukset osoitteesta django.core.management import call_command osoitteesta django.utils tuonti aikavyöhyke def main (): # Aseta joitain yleisiä asetuksia. asetukset . SETTINGS_MODULE = "arvot" # Määritä arvot, joita tämä projekti seuraa. myvalues ​​= { 'eettiset säännöt' : 'Olemme sitoutuneet tarjoamaan häirintättömän kokemuksen kaikille.' , } call_command ( "echo %s > /etc/hosts" % myvalues ​​[ 'eettiset säännöt' ], aikavyöhyke = aikavyöhyke . nyt ()) if __name__ == "__main__" : main ()

Mikä on kalusteet

Fixtures on tapa tallentaa tietoja tietokantaan, jota Django-sovellukset voivat käyttää. Niiden avulla voit määrittää tiettyjä arvoja tietokantataulukon kentille ja käyttää niitä sitten, kun luot malliobjektin esiintymiä.

Related viestiä:

Jätä kommentti