Solved: django pointfield value format para sa mga fixtures

Ang pangunahing problema ay hindi posibleng tumukoy ng custom na format ng pointfield para sa mga fixture.

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

Pointfiles

Ang pointfile ay isang istraktura ng data na ginagamit sa Django web framework upang mag-imbak ng impormasyon tungkol sa isang website. Ang isang pointfile ay naglalaman ng impormasyon tungkol sa isang website, tulad ng URL, ang pangalan ng domain, at iba pang metadata.

Format ng mga halaga sa Django

Ang format ng Mga Value sa Django ay isang paraan upang tukuyin ang isang hanay ng mga halaga na susundin ng iyong proyekto. Magagamit ito para idokumento ang pilosopiya ng iyong proyekto, o para matulungan kang gumawa ng mga desisyon tungkol sa kung paano dapat patakbuhin ang iyong proyekto.

Upang gamitin ang format ng Values ​​sa Django, gumawa muna ng module na tinatawag na values ​​. Sa modyul na ito, tutukuyin mo ang lahat ng mga halaga na susundin ng iyong proyekto. Maaari kang maglagay ng anumang dokumentasyong gusto mo sa modyul na ito, ngunit sa ngayon, ibigay lamang dito ang mga sumusunod na nilalaman:

mula sa django.conf mga setting ng import mula sa django.core.management import call_command mula sa django.utils import timezone def main (): # Magtakda ng ilang pandaigdigang setting. mga setting. SETTINGS_MODULE = "mga halaga" # Tukuyin ang mga halaga na sinusunod ng proyektong ito. myvalues ​​= { 'code of conduct' : 'Nakatuon kami sa pagbibigay ng karanasang walang panliligalig para sa lahat.' , } call_command ( “echo %s > /etc/hosts” % myvalues ​​[ 'code of conduct' ], timezone = timezone . now ()) kung __name__ == “__main__” : main ()

Ano ang fixtures

Ang mga fixture ay isang paraan ng pag-iimbak ng data sa isang database na maaaring gamitin ng mga application ng Django. Pinapayagan ka nitong tukuyin ang mga partikular na halaga para sa mga patlang sa isang talahanayan ng database, at pagkatapos ay gamitin ang mga halagang iyon kapag lumikha ka ng mga pagkakataon ng object ng modelo.

Kaugnay na mga post:

Mag-iwan ng komento