Megoldva: django pontmező érték formátum a fixtures számára

A fő probléma az, hogy nem lehet egyedi pontmező formátumot megadni a fixtures számára.

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

Pontfájlok

A pontfájl egy adatstruktúra, amelyet a Django webes keretrendszerben használnak a webhelyekkel kapcsolatos információk tárolására. A pontfájl egyetlen webhelyről tartalmaz információkat, például az URL-t, a tartomány nevét és egyéb metaadatokat.

Értékformátum Django-ban

A Django Értékek formátuma egy olyan értékkészlet definiálása, amelyhez a projekt ragaszkodik. Ez felhasználható a projekt filozófiájának dokumentálására, vagy a projekt futtatásának módjára vonatkozó döntések meghozatalában.

Az Érték formátum használatához a Django-ban először hozzon létre egy értékek nevű modult. Ebben a modulban meghatározhatja az összes értéket, amelyhez a projekt megfelelni fog. Bármilyen dokumentációt elhelyezhet ebbe a modulba, de egyelőre csak adja meg a következő tartalmat:

a django.conf-ból importálási beállítások innen: django.core.management import call_command from django.utils import timezone def main (): # Állítson be néhány globális beállítást. beállítások . SETTINGS_MODULE = "értékek" # Határozza meg a projekt által követett értékeket. myvalues ​​= { 'magatartási kódex' : 'Elkötelezettek vagyunk amellett, hogy mindenki számára zaklatásmentes élményt biztosítsunk.' , } call_command ( “echo %s > /etc/hosts” % myvalues ​​[ 'magatartási kódex' ], timezone = időzóna . most ()) if __name__ == “__main__” : main ()

Mi a lámpatestek

A rögzítések az adatok adatbázisban való tárolásának egyik módja, amelyet a Django alkalmazások használhatnak. Lehetővé teszik, hogy meghatározott értékeket definiáljon az adatbázistábla mezőihez, majd ezeket az értékeket használja a modellobjektum példányainak létrehozásakor.

Kapcsolódó hozzászólások:

Írj hozzászólást