如何在Django ORM中映射PostgreSQL数组字段

时间:2010-12-09 16:42:57

标签: django postgresql django-models django-orm

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

6 个答案:

答案 0 :(得分:12)

您可能希望在github上查看django-dbarray。它增加了对postgresql数组字段的支持。

我之前没有使用它,但看起来你只需要这样做:

from django.db import model
import dbarray

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

答案 1 :(得分:4)

其中一个不错的选择是http://django-orm.readthedocs.org/ ---一个为许多本地postgres类型添加绑定的库。

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

答案 2 :(得分:4)

答案 3 :(得分:3)

对Django(在django.contrib.postgres.fields模块中)即将推出对PostgreSQL特定模型字段的本机支持:

答案 4 :(得分:2)

由于Django 1.8有一个django.contrib.postgress module,可以在其他PostgreSQL数据类型中添加对array fields的支持。

例如,您可以执行以下操作:

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)

答案 5 :(得分:1)

你必须继承model.Field并编写输入和输出方法。

http://docs.djangoproject.com/en/dev/howto/custom-model-fields/#custom-database-types