Comment cartographier le champ de tableau PostgreSQL dans Django ORM
-
25-09-2019 - |
Question
J'ai dans ma base de données PostrgreSQL de type texte de champ . Est-il possible de mapper ce dans un modèle Django?
La solution
Vous pouvez regarder dans django-dbarray sur GitHub. Il ajoute le support pour les champs de tableau de postgresql.
Je ne l'ai pas utilisé avant, mais il vous ressemble suffit de faire:
from django.db import model
import dbarray
class ProfilingTestRun(models.Model):
function = models.CharField(max_length=64)
runtimes = dbarray.FloatArrayField()
Autres conseils
L'une des autres options Nice est http://django-orm.readthedocs.org/ --- une bibliothèque qui ajoute des liaisons à de nombreux types de Postgres natifs.
principal inconvénient de django-orm
est qu'à partir d'aujourd'hui, il n'a pas de support de travail pour south
.
djorm-ext-pgarray offrent également des requêtes http://www.niwi.be/2012/ 10/07 / postgresql-Array-champs-avec-django /
Prise en charge native pour les champs de modèle spécifique PostgreSQL arrive bientôt à Django (dans le module django.contrib.postgres.fields):
- https://docs.djangoproject.com/en / dev / ref / contrib / postgres / champs / # arrayfield
- https://github.com/django/django/pull/2485 : la demande de traction correspondante
Depuis Django 1.8 il y a django.contrib.postgress le module qui ajoute le support champs tableau parmi d'autres types de données PostgreSQL.
Par exemple, vous pouvez faire quelque chose comme ceci:
from django.contrib.postgres.fields import ArrayField
from django.db import models
class GoGame(models.Model):
board = ArrayField(ArrayField(models.IntegerField(),size=19),size=19)
vous devez sous-classe model.Field
et écrire d'entrée et de sortie méthodes.