Atrisināts: django pointfield vērtību formāts armatūrai

Galvenā problēma ir tā, ka ķermeņiem nav iespējams norādīt pielāgotu pointfield formātu.

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

Punktu faili

Pointfile ir datu struktūra, ko izmanto Django tīmekļa sistēmā, lai saglabātu informāciju par vietni. Punktu fails satur informāciju par vienu vietni, piemēram, URL, domēna nosaukumu un citus metadatus.

Vērtību formāts Django

Vērtību formāts programmā Django ir veids, kā definēt vērtību kopu, ko jūsu projekts ievēros. To var izmantot, lai dokumentētu jūsu projekta filozofiju vai palīdzētu jums pieņemt lēmumus par to, kā jūsu projekts būtu jāvada.

Lai lietotu vērtību formātu programmā Django, vispirms izveidojiet moduli ar nosaukumu Values ​​. Šajā modulī jūs definēsit visas vērtības, kurām būs jāatbilst jūsu projektam. Šajā modulī varat ievietot jebkuru vajadzīgo dokumentāciju, bet pagaidām vienkārši norādiet tai šādu saturu:

no django.conf importēt iestatījumus no django.core.management importēt call_command no django.utils importēt laika joslu def main (): # Iestatiet dažus globālos iestatījumus. iestatījumi . SETTINGS_MODULE = “vērtības” # Definējiet vērtības, kurām seko šis projekts. myvalues ​​= { 'uzvedības kodekss' : 'Mēs esam apņēmušies ikvienam nodrošināt pieredzi bez uzmākšanās.' , } call_command ( “echo %s > /etc/hosts” % myvalues ​​[ 'uzvedības kodekss' ], timezone = timezone . now ()) if __name__ == “__main__” : galvenais ()

Kas ir armatūra

Fixtures ir datu glabāšanas veids datu bāzē, ko var izmantot Django lietojumprogrammas. Tie ļauj definēt noteiktas vērtības laukiem datu bāzes tabulā un pēc tam izmantot šīs vērtības, veidojot modeļa objekta gadījumus.

Related posts:

Leave a Comment