Django中的ArrayField

3

我的代码:

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

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

这是一个关于it技术的相关文档,它涉及到Django框架中的PostgreSQL字段。请点击链接查看详细信息。
board = ArrayField(
    ArrayField(
        models.CharField(max_length=10, blank=True),
        size=8,
    ),
    size=8,
)

文档 - 大小:这是一个可选参数。

错误信息:

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

但是这些都不起作用:default = {},'{}'或{''}。它们都会得到相同的错误消息。
文档:如果您为字段设置了默认值,请确保它是可调用的,例如list(用于空默认值)或返回列表的可调用对象(例如函数)。
但是这些也都不起作用:default = list,list()。null = True(我的原始代码)也不起作用。
所有这些示例都会给出相同的错误。我在网上看到了非Django解决方案,但是有没有一个在Django中可行的代码示例?谢谢。

这可能不是问题所在,但你的 defaultCharField 中,而不是 ArrayField 中。 - Paulo Almeida
我从未见过这样做,但或许是个好建议。谢谢。 - Malik A. Rumi
1个回答

4

在你的情况下,你正在谈论 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
)

1
好的,这很有道理。我原以为如果没有关于尺寸的说明,那么默认情况下尺寸会匹配。 - Malik A. Rumi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接