Есть ли способ аннотировать запрос Django с не выражением? - PullRequest
0 голосов
/ 16 октября 2019

У меня есть сценарий использования, когда мне нужно получить все объекты, где 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

Есть ли способ аннотировать объекты строковым значением?

1 Ответ

1 голос
/ 16 октября 2019

Не уверен, что вы спрашиваете, но попробуйте Значение выражение.

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