ArrayField返回错误的值

奇迹7

我将PostgreSQL与Django结合使用,并尝试使用

ArrayField(CharField())

存储值或检索都不会引发任何异常,但会尝试存储["string", "another_string", "string with whitespaces", "str"]然后检索它,这将返回

'{string,another_string,"string with whitespaces",str}'

使用ArrayField(IntegerField())时不会发生此问题ArrayField(ArrayField(CharField()))

虽然我知道我可以使用JSON或将列表嵌套在另一个列表中以获得可以正确读取的[[strings]],但我想知道为什么会这样。


编辑:事实证明,使用ArrayField(ArrayField(CharField()))也不起作用:

Python 3.3.2 (default, Mar 20 2014, 20:25:51) 
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from api.models import Game
>>> g = Game.objects.all()[0]
>>> g.p1hand = [["a", "b", "c d"]]
>>> g.p1hand
[['a', 'b', 'c d']]
>>> g.save()
>>> g = Game.objects.all()[0]
>>> g.p1hand
'{{a,b,"c d"}}'
>>>

我不知道为什么它在单个实例中起作用 ArrayField(ArrayField(CharField()))


编辑:关于@LongBeard_Boldy,这是另一个ArrayField(ArrayField(CharField()))返回实例

>>> g.game_objects
[['Test', '3', '3', '0', 'building', '5', '2', '2', '0'], ....]
安德烈斯·蒙格·莫雷诺(Andres Monge Moreno)

我遇到了同样的问题,最终导致了迁移问题。我确实将字段包含在models.py文件中,但没有迁移,因此django有点了解如何处理列表,但不了解如何检索它们。

迁移数据库后,一切都将正常运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章