* * * * max
между двумя полями в базе данных в Django Greatest
[Django-doc] , поэтому запрос должен выглядеть примерно так:
from django.db.models import F, Value
from django.db.models.functions import <b>Greatest</b>
Task.objects.filter(
id=input_stage.id
).update(
start_date=<b>Greatest</b>(Value(data.get('start_date')), F('start_date')),
finish_date=<b>Greatest</b>(Value(data.get('finish_date')), F('finish_date'))
)
Вы также можете преобразовать data.get('start_date')
и т. Д. В date
объекты.
Имейте в виду, что .update(..)
[django-doc] не не возвращает QuerySet
, но:
(...) и возвращает количество совпадений строк (что может небыть равным количеству обновленных строк, если некоторые строки уже имеют новое значение).