I have an array field in my PostrgreSQL database of type text. Is there a way to map this into a Django model ?
You might want to look into django-dbarray on github. It adds support for postgresql array fields.
I haven't used it before, but it looks like you just need to do:
from django.db import model
import dbarray
class ProfilingTestRun(models.Model):
function = models.CharField(max_length=64)
runtimes = dbarray.FloatArrayField()
djorm-ext-pgarray also offer queries http://www.niwi.be/2012/10/07/postgresql-array-fields-with-django/
One of the other nice options is http://django-orm.readthedocs.org/ --- a library that adds bindings to many native postgres types.
Main drawback of django-orm
is that as of today it has no working support for south
.
Since Django 1.8 there is a django.contrib.postgress module that adds support to array fields among other PostgreSQL data types.
For example you can do something like this:
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)
you have to subclass model.Field
and write input and output methods.
http://docs.djangoproject.com/en/dev/howto/custom-model-fields/#custom-database-types
Native support for PostgreSQL specific model fields is coming soon to Django (in the django.contrib.postgres.fields module):