1 | TypeError at /admin/
|
---|
2 | dict objects are unhashable
|
---|
3 | Request Method: GET
|
---|
4 | Request URL: http://localhost/admin/
|
---|
5 | Exception Type: TypeError
|
---|
6 | Exception Value: dict objects are unhashable
|
---|
7 | Exception Location: C:\Python25\lib\site-packages\django\core\urlresolvers.py in _get_reverse_dict, line 222
|
---|
8 | Python Executable: C:\wamp\apache2\bin\httpd.exe
|
---|
9 | Python Version: 2.5.1
|
---|
10 | Template error
|
---|
11 |
|
---|
12 | In template c:\python25\lib\site-packages\django\contrib\admin\templates\admin\base.html, error at line 28
|
---|
13 | Caught an exception while rendering: dict objects are unhashable
|
---|
14 | 18 {% if not is_popup %}
|
---|
15 | 19 <!-- Header -->
|
---|
16 | 20 <div id="header">
|
---|
17 | 21 <div id="branding">
|
---|
18 | 22 {% block branding %}{% endblock %}
|
---|
19 | 23 </div>
|
---|
20 | 24 {% if user.is_authenticated and user.is_staff %}
|
---|
21 | 25 <div id="user-tools">
|
---|
22 | 26 {% trans 'Welcome,' %} <strong>{% if user.first_name %}{{ user.first_name|escape }}{% else %}{{ user.username }}{% endif %}</strong>.
|
---|
23 | 27 {% block userlinks %}
|
---|
24 | 28 <a href="{% url django.contrib.admin.views.doc.doc_index %}">{% trans 'Documentation' %}</a>
|
---|
25 | 29 / <a href="{% url django.contrib.auth.views.password_change %}">{% trans 'Change password' %}</a>
|
---|
26 | 30 / <a href="{% url django.contrib.auth.views.logout %}">{% trans 'Log out' %}</a>
|
---|
27 | 31 {% endblock %}
|
---|
28 | 32 </div>
|
---|
29 | 33 {% endif %}
|
---|
30 | 34 {% block nav-global %}{% endblock %}
|
---|
31 | 35 </div>
|
---|
32 | 36 <!-- END Header -->
|
---|
33 | 37 {% block breadcrumbs %}<div class="breadcrumbs"><a href="/">{% trans 'Home' %}</a>{% if title %} › {{ title|escape }}{% endif %}</div>{% endblock %}
|
---|
34 | 38 {% endif %}
|
---|
35 | Traceback (innermost last)
|
---|
36 | Switch to copy-and-paste view
|
---|
37 |
|
---|
38 | * C:\Python25\lib\site-packages\django\template\__init__.py in render_node
|
---|
39 | 803.
|
---|
40 | 804. def render_node(self, node, context):
|
---|
41 | 805. return node.render(context)
|
---|
42 | 806.
|
---|
43 | 807. class DebugNodeList(NodeList):
|
---|
44 | 808. def render_node(self, node, context):
|
---|
45 | 809. try:
|
---|
46 | 810. result = node.render(context) ...
|
---|
47 | 811. except TemplateSyntaxError, e:
|
---|
48 | 812. if not hasattr(e, 'source'):
|
---|
49 | 813. e.source = node.source
|
---|
50 | 814. raise
|
---|
51 | 815. except Exception, e:
|
---|
52 | 816. from sys import exc_info
|
---|
53 | ▶ Local vars
|
---|
54 | Variable Value
|
---|
55 | context
|
---|
56 | [{'block': <Block Node: userlinks. Contents: [<Text Node: ' <a href="'>, <django.template.defaulttags.URLNode object at 0x06292130>, <Text Node: '">'>, <django.templatetags.i18n.TranslateNode object at 0x06292170>, <Text Node: '</a> / <a href="'>, <django.template.defaulttags.URLNode object at 0x062921B0>, <Text Node: '">'>, <django.templatetags.i18n.TranslateNode object at 0x062921F0>, <Text Node: '</a> / <a href="'>, <django.template.defaulttags.URLNode object at 0x06292230>, <Text Node: '">'>, <django.templatetags.i18n.TranslateNode object at 0x06292270>, <Text Node: '</a> '>]>}, {'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': <django.core.context_processors.PermWrapper object at 0x06252550>, 'messages': [], 'user': <User: ksilha>}, {}]
|
---|
57 | e
|
---|
58 | TypeError('dict objects are unhashable',)
|
---|
59 | exc_info
|
---|
60 | <built-in function exc_info>
|
---|
61 | node
|
---|
62 | <django.template.defaulttags.URLNode object at 0x06292130>
|
---|
63 | self
|
---|
64 | [<Text Node: ' <a href="'>, <django.template.defaulttags.URLNode object at 0x06292130>, <Text Node: '">'>, <django.templatetags.i18n.TranslateNode object at 0x06292170>, <Text Node: '</a> / <a href="'>, <django.template.defaulttags.URLNode object at 0x062921B0>, <Text Node: '">'>, <django.templatetags.i18n.TranslateNode object at 0x062921F0>, <Text Node: '</a> / <a href="'>, <django.template.defaulttags.URLNode object at 0x06292230>, <Text Node: '">'>, <django.templatetags.i18n.TranslateNode object at 0x06292270>, <Text Node: '</a> '>]
|
---|
65 | wrapped
|
---|
66 | TemplateSyntaxError('Caught an exception while rendering: dict objects are unhashable',)
|
---|
67 | * C:\Python25\lib\site-packages\django\template\defaulttags.py in render
|
---|
68 | 337. self.kwargs = kwargs
|
---|
69 | 338.
|
---|
70 | 339. def render(self, context):
|
---|
71 | 340. from django.core.urlresolvers import reverse, NoReverseMatch
|
---|
72 | 341. args = [arg.resolve(context) for arg in self.args]
|
---|
73 | 342. kwargs = dict([(smart_str(k,'ascii'), v.resolve(context)) for k, v in self.kwargs.items()])
|
---|
74 | 343. try:
|
---|
75 | 344. return reverse(self.view_name, args=args, kwargs=kwargs) ...
|
---|
76 | 345. except NoReverseMatch:
|
---|
77 | 346. try:
|
---|
78 | 347. project_name = settings.SETTINGS_MODULE.split('.')[0]
|
---|
79 | 348. return reverse(project_name + '.' + self.view_name, args=args, kwargs=kwargs)
|
---|
80 | 349. except NoReverseMatch:
|
---|
81 | 350. return ''
|
---|
82 | ▶ Local vars
|
---|
83 | Variable Value
|
---|
84 | NoReverseMatch
|
---|
85 | <class 'django.core.urlresolvers.NoReverseMatch'>
|
---|
86 | args
|
---|
87 | []
|
---|
88 | context
|
---|
89 | [{'block': <Block Node: userlinks. Contents: [<Text Node: ' <a href="'>, <django.template.defaulttags.URLNode object at 0x06292130>, <Text Node: '">'>, <django.templatetags.i18n.TranslateNode object at 0x06292170>, <Text Node: '</a> / <a href="'>, <django.template.defaulttags.URLNode object at 0x062921B0>, <Text Node: '">'>, <django.templatetags.i18n.TranslateNode object at 0x062921F0>, <Text Node: '</a> / <a href="'>, <django.template.defaulttags.URLNode object at 0x06292230>, <Text Node: '">'>, <django.templatetags.i18n.TranslateNode object at 0x06292270>, <Text Node: '</a> '>]>}, {'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': <django.core.context_processors.PermWrapper object at 0x06252550>, 'messages': [], 'user': <User: ksilha>}, {}]
|
---|
90 | kwargs
|
---|
91 | {}
|
---|
92 | reverse
|
---|
93 | <function reverse at 0x05F85930>
|
---|
94 | self
|
---|
95 | <django.template.defaulttags.URLNode object at 0x06292130>
|
---|
96 | * C:\Python25\lib\site-packages\django\core\urlresolvers.py in reverse
|
---|
97 | 289.
|
---|
98 | 290. def resolve(path, urlconf=None):
|
---|
99 | 291. return get_resolver(urlconf).resolve(path)
|
---|
100 | 292.
|
---|
101 | 293. def reverse(viewname, urlconf=None, args=None, kwargs=None):
|
---|
102 | 294. args = args or []
|
---|
103 | 295. kwargs = kwargs or {}
|
---|
104 | 296. return iri_to_uri(u'/' + get_resolver(urlconf).reverse(viewname, *args, **kwargs)) ...
|
---|
105 | 297.
|
---|
106 | ▶ Local vars
|
---|
107 | Variable Value
|
---|
108 | args
|
---|
109 | []
|
---|
110 | kwargs
|
---|
111 | {}
|
---|
112 | urlconf
|
---|
113 | None
|
---|
114 | viewname
|
---|
115 | u'django.contrib.admin.views.doc.doc_index'
|
---|
116 | * C:\Python25\lib\site-packages\django\core\urlresolvers.py in reverse
|
---|
117 | 274. return self._resolve_special('500')
|
---|
118 | 275.
|
---|
119 | 276. def reverse(self, lookup_view, *args, **kwargs):
|
---|
120 | 277. try:
|
---|
121 | 278. lookup_view = get_callable(lookup_view, True)
|
---|
122 | 279. except (ImportError, AttributeError):
|
---|
123 | 280. raise NoReverseMatch
|
---|
124 | 281. if lookup_view in self.reverse_dict: ...
|
---|
125 | 282. return u''.join([reverse_helper(part.regex, *args, **kwargs) for part in self.reverse_dict[lookup_view]])
|
---|
126 | 283. raise NoReverseMatch
|
---|
127 | 284.
|
---|
128 | 285. def reverse_helper(self, lookup_view, *args, **kwargs):
|
---|
129 | 286. sub_match = self.reverse(lookup_view, *args, **kwargs)
|
---|
130 | 287. result = reverse_helper(self.regex, *args, **kwargs)
|
---|
131 | ▶ Local vars
|
---|
132 | Variable Value
|
---|
133 | args
|
---|
134 | ()
|
---|
135 | kwargs
|
---|
136 | {}
|
---|
137 | lookup_view
|
---|
138 | <function _checklogin at 0x0629F870>
|
---|
139 | self
|
---|
140 | <RegexURLResolver positiontech2.urls ^/>
|
---|
141 | * C:\Python25\lib\site-packages\django\core\urlresolvers.py in _get_reverse_dict
|
---|
142 | 215. if not self._reverse_dict and hasattr(self.urlconf_module, 'urlpatterns'):
|
---|
143 | 216. for pattern in reversed(self.urlconf_module.urlpatterns):
|
---|
144 | 217. if isinstance(pattern, RegexURLResolver):
|
---|
145 | 218. for key, value in pattern.reverse_dict.iteritems():
|
---|
146 | 219. self._reverse_dict[key] = (pattern,) + value
|
---|
147 | 220. else:
|
---|
148 | 221. self._reverse_dict[pattern.callback] = (pattern,)
|
---|
149 | 222. self._reverse_dict[pattern.name] = (pattern,) ...
|
---|
150 | 223. return self._reverse_dict
|
---|
151 | 224. reverse_dict = property(_get_reverse_dict)
|
---|
152 | 225.
|
---|
153 | 226. def resolve(self, path):
|
---|
154 | 227. tried = []
|
---|
155 | 228. match = self.regex.search(path)
|
---|
156 | ▶ Local vars
|
---|