2010-12-09 113 views
14

我的PostrgreSQL数据库中有一个array字段,它的类型为text。有没有办法将它映射到Django模型?如何在Django ORM中映射PostgreSQL数组字段

+3

的可能重复[如何做文字后的Django模型\ [\] PostgreSQL中(http://stackoverflow.com/questions/4213332/how -does-django-model-after-text-in-postgresql) – 2010-12-09 17:31:54

回答

12

你可能要考虑django-dbarray GitHub上。它增加了对postgresql数组字段的支持。

我以前没有使用过它,但它看起来像你只需要做:

from django.db import model 
import dbarray 

class ProfilingTestRun(models.Model): 
    function = models.CharField(max_length=64) 
    runtimes = dbarray.FloatArrayField() 
+0

db_index在数组字段上不被接受......它甚至有可能吗? – 2013-08-10 12:27:19

+1

由于Django 1.8你有https://docs.djangoproject.com/en/1.8/ref/contrib/postgres/fields/#arrayfield – shuttle87 2016-05-02 04:21:35

4

其中一个其他不错的选项是http://django-orm.readthedocs.org/ ---即增加了绑定到许多本地的Postgres类型库。

django-orm的主要缺点是,截至今天,它没有south的工作支持。

2

由于Django 1.8有一个django.contrib.postgress module,它支持array fields和其他PostgreSQL数据类型。

例如,你可以做这样的事情:

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) 
相关问题