[Fixed]-How to map PostgreSQL array field in Django ORM

12👍

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()
👤jcdyer

4👍

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.

👤jb.

4👍

👤ecabuk

3👍

Native support for PostgreSQL specific model fields is coming soon to Django (in the django.contrib.postgres.fields module):

👤user

2👍

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)

1👍

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

👤nate c

Leave a comment