From ba9649f966e7bf9c1f0cea7fac2bb991beb600b5 Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick <malcolm.tredinnick@gmail.com> Date: Tue, 13 Feb 2007 06:06:09 +0000 Subject: [PATCH] Fixed #3377 -- Fixed subtle infinite recursion bug in LazyDate objects. Thanks to brut.alll@gmail.com. git-svn-id: http://code.djangoproject.com/svn/django/trunk@4497 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- AUTHORS | 1 + django/db/models/__init__.py | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/AUTHORS b/AUTHORS index 61cdfad074..879110e776 100644 --- a/AUTHORS +++ b/AUTHORS @@ -57,6 +57,7 @@ answer newbie questions, and generally made Django that much better: Paul Bissex <http://e-scribe.com/> Simon Blanchard Andrew Brehaut <http://brehaut.net/blog> + brut.alll@gmail.com Jonathan Buchanan <jonathan.buchanan@gmail.com> Antonio Cavedoni <http://cavedoni.com/> C8E diff --git a/django/db/models/__init__.py b/django/db/models/__init__.py index 0308dd047a..47057e306f 100644 --- a/django/db/models/__init__.py +++ b/django/db/models/__init__.py @@ -50,4 +50,9 @@ class LazyDate(object): return (datetime.datetime.now() + self.delta).date() def __getattr__(self, attr): + if attr == 'delta': + # To fix ticket #3377. Note that normal access to LazyDate.delta + # (after construction) will still work, because they don't go + # through __getattr__). This is mainly needed for unpickling. + raise AttributeError return getattr(self.__get_value__(), attr)