gpt4 book ai didi

python - Django 映射到 Postgres citext 数组返回一个 str 而不是一个列表

转载 作者:行者123 更新时间:2023-11-29 12:53:02 25 4
gpt4 key购买 nike

我有一个 Django 模型,其中包含一个基于 citext 的别名数组。当我检索记录时,我得到的不是列表 ['foobar'],而是一个 str '{foobar}',显然,尝试添加别名失败了。

我曾经有过:

from django.db import models

class zone(models.Model):
name = models.CharField(max_length=255)
aliases = ArrayField(
models.TextField(max_length=255, blank=True),
size=4,
null=True,
blank=True,
)

这工作正常,但由于我需要使其不区分大小写,我将 TextField 更改为 CITextField:

from django.contrib.postgres.fields import ArrayField, CITextField
from django.db import models

class zone(models.Model):
name = models.CharField(max_length=255)
aliases = ArrayField(
CITextField(max_length=255, blank=True),
size=4,
null=True,
blank=True,
)

结果:

items = zone.objects.filter(name='foo')
item = items[0]
print(type(item.aliases), item.aliases)
>> <class 'str'> {"foobar"}

知道为什么这个 citext 不会被解码为数组而不是纯字符串吗?

最佳答案

您需要将 django.contrib.postgres 添加到您的 INSTALLED_APPS 设置中。

关于python - Django 映射到 Postgres citext 数组返回一个 str 而不是一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49633807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com