Skip to content

Commit

Permalink
Fixed #1046 -- Made syndication feed framework not swallow TypeErrors…
Browse files Browse the repository at this point in the history
… in functions. Thanks, junzhang.jn

git-svn-id: http://code.djangoproject.com/svn/django/trunk@2341 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
adrianholovaty committed Feb 18, 2006
1 parent 25b149a commit bb85004
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -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/>
Expand Down
12 changes: 10 additions & 2 deletions django/contrib/syndication/feeds.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down

0 comments on commit bb85004

Please sign in to comment.