Rozwiązany: format wartości pointfield Django dla urządzeń

Główny problem polega na tym, że nie można określić niestandardowego formatu pola punktowego dla urządzeń.

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

Pliki punktowe

Plik punktów to struktura danych używana w ramach sieci Django do przechowywania informacji o stronie internetowej. Plik punktów zawiera informacje o pojedynczej witrynie, takie jak adres URL, nazwa domeny i inne metadane.

Format wartości w Django

Format wartości w Django to sposób na zdefiniowanie zestawu wartości, których będzie przestrzegać twój projekt. Można to wykorzystać do udokumentowania filozofii projektu lub do pomocy w podejmowaniu decyzji dotyczących sposobu prowadzenia projektu.

Aby użyć formatu Values ​​w Django, najpierw utwórz moduł o nazwie values ​​. W tym module zdefiniujesz wszystkie wartości, których będzie przestrzegać Twój projekt. W tym module możesz umieścić dowolną dokumentację, ale na razie po prostu podaj jej następującą zawartość:

z django.conf importuj ustawienia z django.core.management import call_command z django.utils import timezone def main (): # Ustaw niektóre ustawienia globalne. ustawienia . SETTINGS_MODULE = “wartości” # Zdefiniuj wartości, którymi kieruje się ten projekt. myvalues ​​= { 'kodeks postępowania' : 'Jesteśmy zobowiązani do zapewnienia wszystkim doświadczenia wolnego od nękania.' , } call_command ( „echo %s > /etc/hosts” % myvalues ​​[ 'kodeks postępowania' ], timezone = timezone . now ()) if __name__ == „__main__” : main ()

Co to jest armatura

Fixtures to sposób przechowywania danych w bazie danych, który może być używany przez aplikacje Django. Pozwalają zdefiniować określone wartości dla pól w tabeli bazy danych, a następnie użyć tych wartości podczas tworzenia instancji obiektu modelu.

Powiązane posty:

Zostaw komentarz