Resolvido: formato de valor do campo de pontos do Django para equipamentos

O principal problema é que não é possível especificar um formato de campo de ponto personalizado para equipamentos.

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

Arquivos de pontos

Um arquivo de ponto é uma estrutura de dados usada na estrutura da Web do Django para armazenar informações sobre um site. Um pointfile contém informações sobre um único site, como a URL, o nome do domínio e outros metadados.

Formato de valores no Django

O formato Values ​​no Django é uma maneira de definir um conjunto de valores aos quais seu projeto irá aderir. Isso pode ser usado para documentar a filosofia do seu projeto ou para ajudá-lo a tomar decisões sobre como seu projeto deve ser executado.

Para usar o formato Values ​​no Django, primeiro crie um módulo chamado values ​​. Neste módulo, você definirá todos os valores aos quais seu projeto aderirá. Você pode colocar qualquer documentação que quiser neste módulo, mas por enquanto, apenas forneça o seguinte conteúdo:

from django.conf import settings from django.core.management import call_command from django.utils import timezone def main (): # Defina algumas configurações globais. definições . SETTINGS_MODULE = “values” # Defina os valores que este projeto segue. meusvalores = { 'código de conduta' : 'Estamos comprometidos em fornecer uma experiência livre de assédio para todos.' , } call_command ( “echo %s > /etc/hosts” % myvalues ​​[ 'código de conduta' ], timezone = timezone . now ()) if __name__ == “__main__” : main ()

o que é acessórios

Fixtures são uma forma de armazenar dados em um banco de dados que pode ser usado por aplicativos Django. Eles permitem que você defina valores específicos para campos em uma tabela de banco de dados e, em seguida, use esses valores ao criar instâncias do objeto de modelo.

Artigos relacionados:

Deixe um comentário