问题:Django 中的数组字段

我的代码:

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

文档示例: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.

但这些都不起作用:defaultu003d{}、'{}' 或 {''} 它们都收到相同的错误消息。

docs:如果您给该字段一个默认值,请确保它是可调用的,例如列表(对于空的默认值)或返回列表的可调用(例如函数)

但这些都不起作用:defaultu003dlist, list()。 nullu003dTrue (我的原始代码)也不起作用。

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

解答

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

PostgreSQL社区为您提供最前沿的新闻资讯和知识内容

更多推荐