diff options
| author | Adrian Holovaty <adrian@holovaty.com> | 2006-02-18 20:34:14 +0000 |
|---|---|---|
| committer | Adrian Holovaty <adrian@holovaty.com> | 2006-02-18 20:34:14 +0000 |
| commit | bb8500449b8da7a11dbf8422f9b10d943281bb62 (patch) | |
| tree | 9254d048a88a59ea595751591827496b8299c08b | |
| parent | 25b149a2a510df359f8fb485f32523d926b0150c (diff) | |
Fixed #1046 -- Made syndication feed framework not swallow TypeErrors in functions. Thanks, junzhang.jn
git-svn-id: http://code.djangoproject.com/svn/django/trunk@2341 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | AUTHORS | 1 | ||||
| -rw-r--r-- | django/contrib/syndication/feeds.py | 12 |
2 files changed, 11 insertions, 2 deletions
@@ -61,6 +61,7 @@ answer newbie questions, and generally made Django that much better: Robert Rock Howard <http://djangomojo.com/> Jason Huggins <http://www.jrandolph.com/blog/> Michael Josephson <http://www.sdjournal.com/> + junzhang.jn@gmail.com Russell Keith-Magee <freakboy@iinet.net.au> Garth Kidd <http://www.deadlybloodyserious.com/> Sune Kirkeby <http://ibofobi.dk/> diff --git a/django/contrib/syndication/feeds.py b/django/contrib/syndication/feeds.py index 49b34858dc..8e3ccdb6c3 100644 --- a/django/contrib/syndication/feeds.py +++ b/django/contrib/syndication/feeds.py @@ -33,9 +33,17 @@ class Feed: except AttributeError: return default if callable(attr): - try: + # Check func_code.co_argcount rather than try/excepting the + # function and catching the TypeError, because something inside + # the function may raise the TypeError. This technique is more + # accurate. + if hasattr(attr, 'func_code'): + argcount = attr.func_code.co_argcount + else: + argcount = attr.__call__.func_code.co_argcount + if argcount == 2: # one argument is 'self' return attr(obj) - except TypeError: + else: return attr() return attr |
