python - 具有不同类型的 Django ArrayField

标签 python django django-models django-postgresql

我需要配置一个 django.contrib.postgres.fields.ArrayField,其中第一个元素是 float ,第二个元素是一个小的正整数:

data = [[1.23, 3], [2.42, 1], [3.72, 29]]

我该怎么做?是否可以?我尝试过类似的方法,但没有成功:

class MyModel(models.Model):
    my_field = ArrayField(
                   models.FloatField(default=0),                        
                   models.PositiveSmallIntegerField(default=0),
                   null=True
               )

最佳答案

I just want to know if I can use different field types inside an ArrayField.

不,这是不可能的,这将涉及一种非常困惑的从数据库中获取数据的方法,并且无法真正将数据库中的字段类型设置为具体类型。

相反,只需使用两个浮点字段

my_field = ArrayField(
    ArrayField(
        models.FloatField(default=0),
        size=2,
    )
)

关于python - 具有不同类型的 Django ArrayField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42021562/

相关文章:

python - 从先前终止的连接到数据库提交 SQLite 中的现有日志文件

python - 选择以给定字符串开头的文件

python - 在 Django 的 settings.py 中导入模型

python - 如何扩展使用 AbstractBaseUser 创建的现有自定义用户模型以拥有多种用户类型,例如客户、培训师和作者?

python - 使用数组元组中的列构建 DataFrame

python - 如何检查变量的值是否已更改

python - Django 1.9 中的 query.group by

python - django 扩展 test_error_logging

python - ubuntu 18.04 上带有 Mod_WSGI 的 Django,Apache2 媒体/权限被拒绝

sql-server - 使用 MyModel.objects.raw() 基于 SQL 表值函数的 Django 模型