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

如何在Django ORM中映射PostgreSQL数组字段,django,postgresql,django-models,django-orm,Django,Postgresql,Django Models,Django Orm,我的PostrgreSQL数据库中有一个文本类型的字段。有没有办法将其映射到Django模型中?您必须将model.Field子类化,并编写输入和输出方法 您可能需要在github上进行研究。它增加了对postgresql数组字段的支持 我以前没用过,但看起来你只需要: from django.db import model import dbarray class ProfilingTestRun(models.Model): function = models.CharField(

我的PostrgreSQL数据库中有一个文本类型的字段。有没有办法将其映射到Django模型中?

您必须将
model.Field子类化,并编写输入和输出方法


您可能需要在github上进行研究。它增加了对postgresql数组字段的支持

我以前没用过,但看起来你只需要:

from django.db import model
import dbarray

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

另一个不错的选择是——一个为许多原生postgres类型添加绑定的库


django-orm
的主要缺点是,到今天为止,它还没有对
south
的工作支持

djorm ext pgarray还提供查询

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

  • :对应的拉取请求
因为有一种新的方法可以在其他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)

与django dbarray相比,它的可能副本现在似乎是一个更好的选择,因为它的维护更好。dbarray不适用于当前形式的CharField数组(尽管有一个未完成的pull请求显然解决了这个问题),数组字段上不接受db_索引。。。有可能吗?自从Django 1.8以来