在某些用例中,我需要获取existing_field
是some 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
是否可以使用字符串值注释对象?
答案 0 :(得分:2)
不确定您要问什么,但尝试使用Value表达式。
MyModel.objects.annotate(annotated_field=Value('some string', output_field=CharField())).filter(annotated_field__startswith=F('existing_field'))