Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

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
  • Loading branch information...
commit bb8500449b8da7a11dbf8422f9b10d943281bb62 1 parent 25b149a
@adrianholovaty adrianholovaty authored
Showing with 11 additions and 2 deletions.
  1. +1 −0  AUTHORS
  2. +10 −2 django/contrib/syndication/feeds.py
View
1  AUTHORS
@@ -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/>
View
12 django/contrib/syndication/feeds.py
@@ -33,9 +33,17 @@ def __get_dynamic_attr(self, attname, obj, default=None):
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

0 comments on commit bb85004

Please sign in to comment.
Something went wrong with that request. Please try again.