Django Models : Как обновить значение, если случай совпадает, иначе сохранить текущее значение

Я хочу выполнить операцию обновления на Django queryset условно таким образом, чтобы значение атрибута обновлялось только тогда, когда оно соответствует условию, в противном случае сохранялось его текущее значение.

Я знаю, что условные обновления в django выполняются с помощью Case, When, then, default, но не понимаю, как сохранить существующее значение для случая по умолчанию. Я пробовал оставить default в запросе, но тогда он выдает ошибку.

Мне нужно что-то вроде следующего. Скажем, есть 4 типа схем: PRO, REGULAR, HOME, FREE.

Customer.objects.filter(age__lte=18)\
                .update(type=Case(When(type=HOME,                
                                       then=FREE),
                                       default=<keep current value>),
                        subscribed=False)

Хорошо, тогда я могу использовать объект F() для этого. Например, F('field_name')

Итак, запрос, который мне нужен, выглядит следующим образом:

Customer.objects.filter(age__lte=18)\
                .update(type=Case(When(type=HOME,                
                                       then=FREE),
                                       default=F('type')),
                        subscribed=False)
Вернуться на верх