Как установить и добавить в столбец с условным случаем в Django?
Я хочу выполнить этот sql-запрос в Django
UPDATE `TABLE` SET `COLUMN` = (CASE WHEN `COLUMN` = "" THEN '100' ELSE CONCAT(`COLUMN`,'100') END)
WHERE `ID` IN [id1,id2,id3];
Я пробовал это
from django.db.models import Case, When, F
Table.object.filter(id__in=[id1,id2,id3]).
update(column=
Case(
When(column="",then="100"),
default= column + "100",
)
)
Я не знаю, как поставить concat по умолчанию. Пожалуйста, помогите.
Вы можете использовать F
объекты :
from django.db.models import F
Table.objects.filter(...).update(column=F("column") + "100")
Вам не нужно проверять, если column == ""
, потому что это не будет иметь значения, когда вы добавите "100"
к нему.