有没有一种方法可以用非表达式注释Django查询?

时间:2019-10-16 10:17:21

标签: django django-queryset django-annotate

在某些用例中,我需要获取existing_fieldsome string开头的所有对象。

some string是动态变化的,所以我需要一种聪明的方法来过滤出对象。

我的想法是像这样创建带注释的查询:

MyModel.objects.annotate(annotated_field='some string').filter(annotated_field__startswith=F('existing_field'))

当前失败,原因: QuerySet.annotate() received non-expression(s): some string

是否可以使用字符串值注释对象?

1 个答案:

答案 0 :(得分:2)

不确定您要问什么,但尝试使用Value表达式。

MyModel.objects.annotate(annotated_field=Value('some string', output_field=CharField())).filter(annotated_field__startswith=F('existing_field'))