TypeError at /admin/ dict objects are unhashable Request Method: GET Request URL: http://localhost/admin/ Exception Type: TypeError Exception Value: dict objects are unhashable Exception Location: C:\Python25\lib\site-packages\django\core\urlresolvers.py in _get_reverse_dict, line 222 Python Executable: C:\wamp\apache2\bin\httpd.exe Python Version: 2.5.1 Template error In template c:\python25\lib\site-packages\django\contrib\admin\templates\admin\base.html, error at line 28 Caught an exception while rendering: dict objects are unhashable 18 {% if not is_popup %} 19 20 36 37 {% block breadcrumbs %}{% endblock %} 38 {% endif %} Traceback (innermost last) Switch to copy-and-paste view * C:\Python25\lib\site-packages\django\template\__init__.py in render_node 803. 804. def render_node(self, node, context): 805. return node.render(context) 806. 807. class DebugNodeList(NodeList): 808. def render_node(self, node, context): 809. try: 810. result = node.render(context) ... 811. except TemplateSyntaxError, e: 812. if not hasattr(e, 'source'): 813. e.source = node.source 814. raise 815. except Exception, e: 816. from sys import exc_info ▶ Local vars Variable Value context [{'block': '>, , / '>, , / '>, , '>]>}, {'title': u'Site administration'}, {'MEDIA_URL': 'http://10.1.2.124:81/'}, {'LANGUAGES': (('ar', 'Arabic'), ('bn', 'Bengali'), ('bg', 'Bulgarian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('el', 'Greek'), ('en', 'English'), ('es', 'Spanish'), ('es_AR', 'Argentinean Spanish'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('ga', 'Gaeilge'), ('gl', 'Galician'), ('hu', 'Hungarian'), ('he', 'Hebrew'), ('hr', 'Croatian'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ko', 'Korean'), ('km', 'Khmer'), ('kn', 'Kannada'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('nl', 'Dutch'), ('no', 'Norwegian'), ('pl', 'Polish'), ('pt', 'Portugese'), ('pt-br', 'Brazilian'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sr', 'Serbian'), ('sv', 'Swedish'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tr', 'Turkish'), ('uk', 'Ukrainian'), ('zh-cn', 'Simplified Chinese'), ('zh-tw', 'Traditional Chinese')), 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'en-us'}, {}, {'perms': , 'messages': [], 'user': }, {}] e TypeError('dict objects are unhashable',) exc_info node self ['>, , / '>, , / '>, , '>] wrapped TemplateSyntaxError('Caught an exception while rendering: dict objects are unhashable',) * C:\Python25\lib\site-packages\django\template\defaulttags.py in render 337. self.kwargs = kwargs 338. 339. def render(self, context): 340. from django.core.urlresolvers import reverse, NoReverseMatch 341. args = [arg.resolve(context) for arg in self.args] 342. kwargs = dict([(smart_str(k,'ascii'), v.resolve(context)) for k, v in self.kwargs.items()]) 343. try: 344. return reverse(self.view_name, args=args, kwargs=kwargs) ... 345. except NoReverseMatch: 346. try: 347. project_name = settings.SETTINGS_MODULE.split('.')[0] 348. return reverse(project_name + '.' + self.view_name, args=args, kwargs=kwargs) 349. except NoReverseMatch: 350. return '' ▶ Local vars Variable Value NoReverseMatch args [] context [{'block': '>, , / '>, , / '>, , '>]>}, {'title': u'Site administration'}, {'MEDIA_URL': 'http://10.1.2.124:81/'}, {'LANGUAGES': (('ar', 'Arabic'), ('bn', 'Bengali'), ('bg', 'Bulgarian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('el', 'Greek'), ('en', 'English'), ('es', 'Spanish'), ('es_AR', 'Argentinean Spanish'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('ga', 'Gaeilge'), ('gl', 'Galician'), ('hu', 'Hungarian'), ('he', 'Hebrew'), ('hr', 'Croatian'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ko', 'Korean'), ('km', 'Khmer'), ('kn', 'Kannada'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('nl', 'Dutch'), ('no', 'Norwegian'), ('pl', 'Polish'), ('pt', 'Portugese'), ('pt-br', 'Brazilian'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sr', 'Serbian'), ('sv', 'Swedish'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tr', 'Turkish'), ('uk', 'Ukrainian'), ('zh-cn', 'Simplified Chinese'), ('zh-tw', 'Traditional Chinese')), 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'en-us'}, {}, {'perms': , 'messages': [], 'user': }, {}] kwargs {} reverse self * C:\Python25\lib\site-packages\django\core\urlresolvers.py in reverse 289. 290. def resolve(path, urlconf=None): 291. return get_resolver(urlconf).resolve(path) 292. 293. def reverse(viewname, urlconf=None, args=None, kwargs=None): 294. args = args or [] 295. kwargs = kwargs or {} 296. return iri_to_uri(u'/' + get_resolver(urlconf).reverse(viewname, *args, **kwargs)) ... 297. ▶ Local vars Variable Value args [] kwargs {} urlconf None viewname u'django.contrib.admin.views.doc.doc_index' * C:\Python25\lib\site-packages\django\core\urlresolvers.py in reverse 274. return self._resolve_special('500') 275. 276. def reverse(self, lookup_view, *args, **kwargs): 277. try: 278. lookup_view = get_callable(lookup_view, True) 279. except (ImportError, AttributeError): 280. raise NoReverseMatch 281. if lookup_view in self.reverse_dict: ... 282. return u''.join([reverse_helper(part.regex, *args, **kwargs) for part in self.reverse_dict[lookup_view]]) 283. raise NoReverseMatch 284. 285. def reverse_helper(self, lookup_view, *args, **kwargs): 286. sub_match = self.reverse(lookup_view, *args, **kwargs) 287. result = reverse_helper(self.regex, *args, **kwargs) ▶ Local vars Variable Value args () kwargs {} lookup_view self * C:\Python25\lib\site-packages\django\core\urlresolvers.py in _get_reverse_dict 215. if not self._reverse_dict and hasattr(self.urlconf_module, 'urlpatterns'): 216. for pattern in reversed(self.urlconf_module.urlpatterns): 217. if isinstance(pattern, RegexURLResolver): 218. for key, value in pattern.reverse_dict.iteritems(): 219. self._reverse_dict[key] = (pattern,) + value 220. else: 221. self._reverse_dict[pattern.callback] = (pattern,) 222. self._reverse_dict[pattern.name] = (pattern,) ... 223. return self._reverse_dict 224. reverse_dict = property(_get_reverse_dict) 225. 226. def resolve(self, path): 227. tried = [] 228. match = self.regex.search(path) ▶ Local vars