Gelöst: Django-Pointfield-Wertformat für Fixtures

Das Hauptproblem ist, dass es nicht möglich ist, ein benutzerdefiniertes Pointfield-Format für Fixtures zu spezifizieren.

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

Punktdateien

Ein Pointfile ist eine Datenstruktur, die im Django-Webframework verwendet wird, um Informationen über eine Website zu speichern. Ein Pointfile enthält Informationen zu einer einzelnen Website, z. B. die URL, den Namen der Domain und andere Metadaten.

Werteformat in Django

Das Werteformat in Django ist eine Möglichkeit, eine Reihe von Werten zu definieren, die Ihr Projekt einhalten wird. Dies kann verwendet werden, um die Philosophie Ihres Projekts zu dokumentieren oder um Ihnen zu helfen, Entscheidungen darüber zu treffen, wie Ihr Projekt durchgeführt werden soll.

Um das Values-Format in Django zu verwenden, erstellen Sie zunächst ein Modul namens values ​​. In diesem Modul definieren Sie alle Werte, die Ihr Projekt einhalten soll. Sie können jede gewünschte Dokumentation in dieses Modul einfügen, aber geben Sie ihm vorerst nur den folgenden Inhalt:

aus django.conf import settings aus django.core.management import call_command aus django.utils import timezone def main (): # Setze einige globale Einstellungen. die Einstellungen . SETTINGS_MODULE = „Werte“ # Definieren Sie die Werte, denen dieses Projekt folgt. myvalues ​​= { 'Verhaltenskodex' : 'Wir verpflichten uns, allen ein belästigungsfreies Erlebnis zu bieten.' , } call_command ( „echo %s > /etc/hosts“ % myvalues ​​[ 'Verhaltenskodex' ], timezone = timezone . now ()) if __name__ == „__main__“ : main ()

Was ist armaturen

Fixtures sind eine Möglichkeit, Daten in einer Datenbank zu speichern, die von Django-Anwendungen verwendet werden können. Sie ermöglichen es Ihnen, bestimmte Werte für Felder in einer Datenbanktabelle zu definieren und diese Werte dann zu verwenden, wenn Sie Instanzen des Modellobjekts erstellen.

Zusammenhängende Posts:

Hinterlasse einen Kommentar