我的模型中有一个持有IntegerFields的ArrayField。我正在寻找从该数组中提取最小和最大整数的最佳方法。
Django文档未提供类似示例的示例,我想知道是否正确的方法是找出如何以及是否可以在此ArrayField上使用聚合函数,或者是否可以将其强制转换为普通的python整数列表并使用构建在最小,最大功能上?
执行此操作的任何建议都将有所帮助。例子更多。
Python的max和min函数似乎可以做到这一点。
型号定义:
from django.contrib.postgres.fields import ArrayField
class TestArrayField(models.Model):
integers = ArrayField(
models.IntegerField()
)
样本数据(两个TestArrayField
模型实例,每个实例带有的数组IntegerFields
):
返回给定实例的最小/最大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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句