Løst: django pointfield-værdiformat for armaturer

Hovedproblemet er, at det ikke er muligt at angive et brugerdefineret pointfield-format for armaturer.

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

Pointfiler

En pointfil er en datastruktur, der bruges i Djangos webramme til at gemme information om et websted. En pointfil indeholder oplysninger om et enkelt websted, såsom URL'en, navnet på domænet og andre metadata.

Værdier format i Django

Værdiformatet i Django er en måde at definere et sæt værdier, som dit projekt vil overholde. Dette kan bruges til at dokumentere dit projekts filosofi, eller til at hjælpe dig med at træffe beslutninger om, hvordan dit projekt skal køres.

For at bruge formatet Værdier i Django skal du først oprette et modul kaldet værdier. I dette modul definerer du alle de værdier, som dit projekt vil overholde. Du kan lægge enhver dokumentation, du ønsker, i dette modul, men for nu skal du blot give det følgende indhold:

fra django.conf import indstillinger fra django.core.management import call_command fra django.utils import tidszone def main (): # Indstil nogle globale indstillinger. indstillinger. SETTINGS_MODULE = "værdier" # Definer de værdier, som dette projekt følger. myvalues ​​= { 'adfærdskodeks' : 'Vi er forpligtet til at give alle en chikanefri oplevelse.' , } call_command ( “echo %s > /etc/hosts” % myvalues ​​[ 'adfærdskodeks' ], tidszone = tidszone . nu ()) if __name__ == “__main__” : main ()

Hvad er inventar

Fixtures er en måde at gemme data på i en database, som kan bruges af Django-applikationer. De giver dig mulighed for at definere specifikke værdier for felter i en databasetabel og derefter bruge disse værdier, når du opretter forekomster af modelobjektet.

Relaterede indlæg:

Efterlad en kommentar