From 65477fd7dae9e2c9f4a241b2eddf25bdb1ceeb0f Mon Sep 17 00:00:00 2001 From: Nick Pope Date: Thu, 13 May 2021 13:52:18 +0100 Subject: Added support for datetime.date to DateFormat.r(). --- django/utils/dateformat.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'django/utils') diff --git a/django/utils/dateformat.py b/django/utils/dateformat.py index adf748b21c..103bff7aae 100644 --- a/django/utils/dateformat.py +++ b/django/utils/dateformat.py @@ -265,16 +265,14 @@ class DateFormat(TimeFormat): def r(self): "RFC 5322 formatted date; e.g. 'Thu, 21 Dec 2000 16:01:07 +0200'" - if type(self.data) is date: - raise TypeError( - "The format for date objects may not contain time-related " - "format specifiers (found 'r')." - ) - if is_naive(self.data): - dt = make_aware(self.data, timezone=self.timezone) - else: - dt = self.data - return format_datetime_rfc5322(dt) + value = self.data + if not isinstance(value, datetime): + # Assume midnight in default timezone if datetime.date provided. + default_timezone = get_default_timezone() + value = datetime.combine(value, time.min).replace(tzinfo=default_timezone) + elif is_naive(value): + value = make_aware(value, timezone=self.timezone) + return format_datetime_rfc5322(value) def S(self): """ -- cgit v1.3