繁体   English   中英

不同类型的 Django ArrayField

[英]Django ArrayField with different types

我需要配置一个django.contrib.postgres.fields.ArrayField和一个对列表,其中第一个元素是一个浮点数,第二个是一个小的正整数:

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
               )

我只想知道是否可以在 ArrayField 中使用不同的字段类型。

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

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

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

如果你真的需要这个功能,你可以试试JSONField

class MyModel(models.Model):
    my_field = JSONField()

并在此存储'[[1.23, 3], [2.42, 1], [3.72, 29]]' ,尽管它确实引发了有关数据模型设计的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM