python - Django 从 PostgreSQL 特定的 ArrayField 中获取最小值和最大值,其中包含 IntegerField(s)

标签 python django django-orm

我有一个 ArrayField 在我的模型控股整数字段 .我正在寻找可以从该数组中提取最小和最大整数的最佳方法。
Django 文档没有给出类似的例子,我想知道正确的方法是否是找出我如何以及是否可以使用 聚合 ArrayField 上的函数,或者我是否可以将其转换为 普通python列表以某种方式整数并使用内置的 min、max 函数?
执行此操作的任何建议都会有所帮助。例子更多。

最佳答案

Python 的 max 和 min 函数似乎可以做到。
型号定义:

from django.contrib.postgres.fields import ArrayField

class TestArrayField(models.Model):
    integers = ArrayField(
        models.IntegerField()
    )
示例数据(两个 TestArrayField 模型实例,每个实例都有一个 IntegerFields 数组):
enter image description here
这将返回 TestArrayField 的给定实例的最小值/最大值:
def test_array_field(request):
    # grabbing the first one, you could use .filter() instead
    integers_array = TestArrayField.objects.first().integers
    max_integer = max(integers_array)
    min_integer = min(integers_array)

    # printing output..
    print(integers_array)
    print('max_integer:', max_integer)
    print('min_integer:', min_integer)
这是输出:
[6, 8, 10, 12]
max_integer: 12
min_integer: 6

关于python - Django 从 PostgreSQL 特定的 ArrayField 中获取最小值和最大值,其中包含 IntegerField(s),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66230710/

相关文章:

django - 如何在反向外键上选择相关?

django - Django:注释缺少的日期

sql - 使用 Django ORM 根据最大​​值获取单个子行

python - 使用 scikit-learn 分类到多个类别

python - 什么是 [1 :] do in a recursive function

python - 如何自动将ForeignKey分配给CBV Create View?

django - “WSGIRequest”对象没有属性 'data'

python - Django 模型出现次数

python - 当 ini 文件设置类型时创建一组对象 (Python)

python - Django:设置项目时出错