Opgelost: django puntveldwaardeformaat voor armaturen

Het grootste probleem is dat het niet mogelijk is om een ​​aangepast pointfield-formaat voor fixtures te specificeren.

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

Puntbestanden

Een pointfile is een gegevensstructuur die in het Django-webframework wordt gebruikt om informatie over een website op te slaan. Een pointfile bevat informatie over een enkele website, zoals de URL, de naam van het domein en andere metadata.

Waardenformaat in Django

Het waardenformaat in Django is een manier om een ​​reeks waarden te definiëren waaraan uw project zich zal houden. Dit kan worden gebruikt om de filosofie van uw project te documenteren, of om u te helpen beslissingen te nemen over hoe uw project moet worden uitgevoerd.

Om het Values-formaat in Django te gebruiken, maakt u eerst een module met de naam waarden . In deze module definieert u alle waarden waaraan uw project zal voldoen. U kunt elke gewenste documentatie in deze module plaatsen, maar voor nu geeft u deze de volgende inhoud:

van django.conf importeer instellingen van django.core.management import call_command van django.utils importeer tijdzone def main (): # Stel enkele algemene instellingen in. instellingen . SETTINGS_MODULE = "waarden" # Definieer de waarden die dit project volgt. myvalues ​​= { 'gedragscode' : 'We doen er alles aan om iedereen een intimidatievrije ervaring te bieden.' , } call_command ("echo %s > /etc/hosts" % myvalues ​​[ 'gedragscode'], tijdzone = tijdzone . now ()) if __name__ == "__main__" : main ()

Wat is armaturen

Armaturen zijn een manier om gegevens op te slaan in een database die kan worden gebruikt door Django-applicaties. Hiermee kunt u specifieke waarden voor velden in een databasetabel definiëren en deze waarden vervolgens gebruiken wanneer u exemplaren van het modelobject maakt.

Gerelateerde berichten:

Laat een bericht achter