我有一个模型:-
class ModelA(models.Model):
field1 = ArrayField(models.IntegerField())
我想获取 ModelA 的前 10 个对象,其最大长度为 field1。我看到 len
过滤器在 Django Docs 中可用。 ,但这不符合我的目的。
如何获取最大长度为 field1 的 top10 对象?
最佳答案
如果你确定你的数组是一维的,你可以使用 PostgreSQL 函数 cardinality
ModelA.objects.extra(select={'length':'cardinality(field1)'}).order_by('length')
或者,使用 array_length
函数(第二个参数是寻求的维数)
ModelA.objects.extra(select={'length':'array_length(field1,1)'}).order_by('length')
关于python - 获取 ArrayField Postgres Django 的 len,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35621502/