有没有办法用非表达式注释django查询?

有没有办法用非表达式注释django查询?,django,django-queryset,django-annotate,Django,Django Queryset,Django Annotate,我有一个用例,需要获取所有对象,其中现有的_字段是某个字符串的开头 有些字符串是动态变化的,所以我需要一种智能的方法来过滤对象 我的想法是创建带注释的查询,如下所示: MyModel.objects.annotate(annotated_field='some string').filter(annotated_field__startswith=F('existing_field')) 目前,它在以下方面失败: QuerySet.annotate接收到的非表达式:某些字符串 有没有办法用字符

我有一个用例,需要获取所有对象,其中现有的_字段是某个字符串的开头

有些字符串是动态变化的,所以我需要一种智能的方法来过滤对象

我的想法是创建带注释的查询,如下所示:

MyModel.objects.annotate(annotated_field='some string').filter(annotated_field__startswith=F('existing_field'))
目前,它在以下方面失败: QuerySet.annotate接收到的非表达式:某些字符串


有没有办法用字符串值对对象进行注释?

不知道你在问什么,但试试表达式

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

不知道你在问什么,但试着表达一下

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

非常感谢。正如你所说,同时解决了这个问题,但首先进行了注释,然后进行了过滤。首先需要创建带注释的_字段。非常感谢。正如你所说,同时解决了这个问题,但首先进行了注释,然后进行了过滤。首先需要创建带注释的_字段。