django Postgres ArrayField 保留列表插入排序

AJW*_*AJW 1 django postgresql

我希望ArrayField在 Django 中使用 an ,我想知道这个字段是否保留插入的顺序。因此,例如,如果我插入列表:

["stackoverflow", "is", "awesome"]
Run Code Online (Sandbox Code Playgroud)

当我检索这个时,我希望有完全相同的顺序pkid

我查看了 django 文档,没有看到任何提及保留插入顺序的内容,因此我提出了问题。如果有人可以将我链接到 django 文档,那就太好了。

PS:我认为 JSONField 不会保留顺序,因此需要考虑 ArrayField。

dir*_*ten 5

Django文档说这ArrayField

\n\n
\n

用于存储数据列表的字段

\n
\n\n

现在,Pythonlist构造函数保留了顺序,如下所述

\n\n
\n

构造函数构建一个列表,其项目与 iterable\xe2\x80\x99s 项目相同且顺序相同

\n
\n\n

最后,如果您查看 postgresql 数组文档,尽管没有明确提及顺序,但从示例中可以清楚地看出,存储在索引处的值i在检索时始终会在同一索引处找到。它可能没有被提及,因为在每种编程语言中,数组(在 python 中称为列表)保留元素的顺序:-)

\n\n

所以基本上,如果您分配模型 a 的字段list并将其写入数据库,那么您可以确定当您检索它时,您将得到相同的list,即保留元素的顺序。

\n