mirror of
https://github.com/django/django.git
synced 2025-05-05 06:27:31 +00:00
Refs #32966 -- Simplified the _check_fix_default_value() implementations.
This commit is contained in:
parent
eebebfe0a9
commit
6fa5d05dba
@ -1171,20 +1171,20 @@ class DateField(DateTimeCheckMixin, Field):
|
|||||||
if not self.has_default():
|
if not self.has_default():
|
||||||
return []
|
return []
|
||||||
|
|
||||||
now = _get_naive_now()
|
|
||||||
value = self.default
|
value = self.default
|
||||||
if isinstance(value, datetime.datetime):
|
if isinstance(value, datetime.datetime):
|
||||||
value = _to_naive(value)
|
value = _to_naive(value).date()
|
||||||
value = value.date()
|
|
||||||
elif isinstance(value, datetime.date):
|
elif isinstance(value, datetime.date):
|
||||||
# Nothing to do, as dates don't have tz information
|
# Nothing to do, as dates don't have tz information
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
# No explicit date / datetime value -- no checks necessary
|
# No explicit date / datetime value -- no checks necessary
|
||||||
return []
|
return []
|
||||||
|
# At this point, value is a date object.
|
||||||
|
today = _get_naive_now().date()
|
||||||
offset = datetime.timedelta(days=1)
|
offset = datetime.timedelta(days=1)
|
||||||
lower = (now - offset).date()
|
lower = today - offset
|
||||||
upper = (now + offset).date()
|
upper = today + offset
|
||||||
if lower <= value <= upper:
|
if lower <= value <= upper:
|
||||||
return [
|
return [
|
||||||
checks.Warning(
|
checks.Warning(
|
||||||
@ -1308,20 +1308,20 @@ class DateTimeField(DateField):
|
|||||||
if not self.has_default():
|
if not self.has_default():
|
||||||
return []
|
return []
|
||||||
|
|
||||||
now = _get_naive_now()
|
|
||||||
value = self.default
|
value = self.default
|
||||||
if isinstance(value, datetime.datetime):
|
if isinstance(value, datetime.datetime):
|
||||||
second_offset = datetime.timedelta(seconds=10)
|
|
||||||
lower = now - second_offset
|
|
||||||
upper = now + second_offset
|
|
||||||
value = _to_naive(value)
|
value = _to_naive(value)
|
||||||
|
now = _get_naive_now()
|
||||||
|
offset = datetime.timedelta(seconds=10)
|
||||||
|
lower = now - offset
|
||||||
|
upper = now + offset
|
||||||
elif isinstance(value, datetime.date):
|
elif isinstance(value, datetime.date):
|
||||||
second_offset = datetime.timedelta(seconds=10)
|
now = _get_naive_now()
|
||||||
lower = now - second_offset
|
offset = datetime.timedelta(seconds=10)
|
||||||
lower = datetime.datetime(lower.year, lower.month, lower.day)
|
lower = now - offset
|
||||||
upper = now + second_offset
|
upper = now + offset
|
||||||
upper = datetime.datetime(upper.year, upper.month, upper.day)
|
lower = lower.date()
|
||||||
value = datetime.datetime(value.year, value.month, value.day)
|
upper = upper.date()
|
||||||
else:
|
else:
|
||||||
# No explicit date / datetime value -- no checks necessary
|
# No explicit date / datetime value -- no checks necessary
|
||||||
return []
|
return []
|
||||||
@ -2201,22 +2201,22 @@ class TimeField(DateTimeCheckMixin, Field):
|
|||||||
if not self.has_default():
|
if not self.has_default():
|
||||||
return []
|
return []
|
||||||
|
|
||||||
now = _get_naive_now()
|
|
||||||
value = self.default
|
value = self.default
|
||||||
if isinstance(value, datetime.datetime):
|
if isinstance(value, datetime.datetime):
|
||||||
second_offset = datetime.timedelta(seconds=10)
|
now = _get_naive_now()
|
||||||
lower = now - second_offset
|
|
||||||
upper = now + second_offset
|
|
||||||
value = _to_naive(value)
|
|
||||||
elif isinstance(value, datetime.time):
|
elif isinstance(value, datetime.time):
|
||||||
second_offset = datetime.timedelta(seconds=10)
|
now = _get_naive_now()
|
||||||
lower = now - second_offset
|
# This will not use the right date in the race condition where now
|
||||||
upper = now + second_offset
|
# is just before the date change and value is just past 0:00.
|
||||||
value = datetime.datetime.combine(now.date(), value)
|
value = datetime.datetime.combine(now.date(), value)
|
||||||
value = _to_naive(value)
|
|
||||||
else:
|
else:
|
||||||
# No explicit time / datetime value -- no checks necessary
|
# No explicit time / datetime value -- no checks necessary
|
||||||
return []
|
return []
|
||||||
|
# At this point, value is a datetime object.
|
||||||
|
offset = datetime.timedelta(seconds=10)
|
||||||
|
lower = now - offset
|
||||||
|
upper = now + offset
|
||||||
|
value = _to_naive(value)
|
||||||
if lower <= value <= upper:
|
if lower <= value <= upper:
|
||||||
return [
|
return [
|
||||||
checks.Warning(
|
checks.Warning(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user