Django Queryset для MySQL заменить - PullRequest
0 голосов
/ 02 мая 2019

Есть ли queryset эквивалент в django для следующего запроса.

UPDATE table
SET field = REPLACE(field, 'string', 'anothervalue')
WHERE field LIKE '%string%';

Ответы [ 2 ]

1 голос
/ 02 мая 2019

Я нашел решение. Нам нужно использовать Replace функции БД.выглядит следующим образом.

from django.db.models import Value
from django.db.models.functions import Replace  

Model.objects.update(field=Replace(
    'field', Value('string'), Value('anothervalue')
))

для получения дополнительной информации официальные документы.

0 голосов
/ 02 мая 2019

Проверьте Django документы для содержит и icontains

lst = Model.objects.filter(field__icontains="string")
for i in lst: i.field = 'anothervalue'; i.save()
...