Django中的Arrayfield

时间:2018-03-07 17:18:02

标签: django postgresql

我的代码:

pagerange_str_array = ArrayField(models.CharField(max_length=10,
                                 blank=True, default=list()))

docs示例: https://docs.djangoproject.com/en/2.0/ref/contrib/postgres/fields/

board = ArrayField(
    ArrayField(
        models.CharField(max_length=10, blank=True),
        size=8,
    ),
    size=8,
)

docs - size:这是一个可选参数。

错误消息:

DETAIL: Array value must start with "{" or dimension information.

但这些都不起作用:默认= {},' {}'或{''} 他们都得到相同的错误消息。

docs:如果你给这个字段一个默认值,确保它是一个可调用的,比如list(对于一个空的默认值)或者是一个可调用的 返回一个列表(如函数)

但这些都不起作用:default = list,list()。 null = True(我的原始代码)也不起作用。

所有这些示例都给出了相同的错误。我在网上看过非Django解决方案,但是什么是在Django中运行的代码示例?!感谢。

1 个答案:

答案 0 :(得分:1)

在你的情况下,你在谈论1-dim数组,它应该像那样:

board = ArrayField(
    ArrayField(
        models.CharField(max_length=10, blank=True),
        size=8,
    ),
    size=1,
)

所以在你的情况下,如:

pagerange_str_array = ArrayField(
    ArrayField(
        models.CharField(max_length=10, blank=True)
    ),
    size=1
)