mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Fixed #12965 - unordered_list template filter fails when given a non-iterable second item in a two item list
Thanks to grahamu for the report and patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@13845 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -601,6 +601,10 @@ def unordered_list(value, autoescape=None): | ||||
|         first_item, second_item = list_ | ||||
|         if second_item == []: | ||||
|             return [first_item], True | ||||
|         try: | ||||
|             it = iter(second_item)  # see if second item is iterable | ||||
|         except TypeError: | ||||
|             return list_, False | ||||
|         old_style_list = True | ||||
|         new_second_item = [] | ||||
|         for sublist in second_item: | ||||
|   | ||||
| @@ -347,6 +347,17 @@ u'\t<li>item 1\n\t<ul>\n\t\t<li>item 1.1\n\t\t<ul>\n\t\t\t<li>item 1.1.1\n\t\t\t | ||||
| >>> unordered_list(['States', ['Kansas', ['Lawrence', 'Topeka'], 'Illinois']]) | ||||
| u'\t<li>States\n\t<ul>\n\t\t<li>Kansas\n\t\t<ul>\n\t\t\t<li>Lawrence</li>\n\t\t\t<li>Topeka</li>\n\t\t</ul>\n\t\t</li>\n\t\t<li>Illinois</li>\n\t</ul>\n\t</li>' | ||||
|  | ||||
| >>> class ULItem(object): | ||||
| ...     def __init__(self, title): | ||||
| ...       self.title = title | ||||
| ...     def __unicode__(self): | ||||
| ...         return u'ulitem-%s' % str(self.title) | ||||
|  | ||||
| >>> a = ULItem('a') | ||||
| >>> b = ULItem('b') | ||||
| >>> unordered_list([a,b]) | ||||
| u'\t<li>ulitem-a</li>\n\t<li>ulitem-b</li>' | ||||
|  | ||||
| # Old format for unordered lists should still work | ||||
| >>> unordered_list([u'item 1', []]) | ||||
| u'\t<li>item 1</li>' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user