我有一个文档模型,它包含一个页面数组字段。我想找到所有零页文档的列表
模型字段:
content = ArrayField(models.TextField(), default=list, blank=True)
我使用注释函数首先为页数创建一个计算字段,然后尝试过滤等于零的页面。以下是我正在尝试运行的查询:
qs = Document.objects.all() \
.annotate(content_len=Func(F('content'), function='CARDINALITY')) \
.exclude(content_len=0) # this DOESN'T WORK
.exclude(content_len__lt=1) # this WORKS
不工作的版本会生成以下SQL错误:
WHERE CARDINALITY("dockets_document"."content") = 0::text[]
>>> psycopg2.errors.CannotCoerce: cannot cast type integer to text[]
这可能是因为Django无法推断字段的类型。您可以通过
output_field
参数指定它来给它一个“提示”:相关问题 更多 >
编程相关推荐