Django CMS 菜单上的语言:'type' 类型的对象没有 len()
Languages on Django CMS menu: object of type 'type' has no len()
我最近在我的项目中加入了英语和简体中文。但是,当我切换到我的(已发布)Chinese 页面时,它会在使用 show_menu
时抛出 TypeError。同样的事情不会发生在葡萄牙语和英语中
TypeError at /zh-cn/
object of type 'type' has no len()
Request Method: GET
Request URL: http://localhost:8000/zh-cn/
Django Version: 1.5.8
Exception Type: TypeError
Exception Value:
object of type 'type' has no len()
Exception Location: /home/marcos/django/project/env/local/lib/python2.7/site-packages/menus/menu_pool.py in _mark_selected, line 171
Python Executable: /home/marcos/django/project/env/bin/python
我做错了什么?
版本
Django 1.5.8
Django 内容管理系统 2.4.3
settings.py
LANGUAGES = (('pt', u'Português'), ('en', u'English'), ('zh-cn', u'中文'),)
CMS_LANGUAGES = LANGUAGES
base.html
{% load sekizai_tags i18n cms_tags menu_tags %}
(...)
<div class="nav top-nav">
<ul class="inner-nav">
{% show_menu 0 %}
</ul>
</div>
完整追溯
Traceback:
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
113. response = callback(request, *callback_args, **callback_kwargs)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/cms/views.py" in details
151. return render_to_response(template_name, context_instance=context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/shortcuts/__init__.py" in render_to_response
29. return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
177. return t.render(context_instance)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/base.py" in render
140. return self._render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render
66. return self.nodelist.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
124. return compiled_parent._render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render
66. return self.nodelist.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/classytags/core.py" in render
106. return self.render_tag(context, **kwargs)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/sekizai/templatetags/sekizai_tags.py" in render_tag
76. rendered_contents = nodelist.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render
369. return strip_spaces_between_tags(self.nodelist.render(context).strip())
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/classytags/core.py" in render
106. return self.render_tag(context, **kwargs)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/classytags/helpers.py" in render_tag
78. data = self.get_context(context, **kwargs)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/menus/templatetags/menu_tags.py" in get_context
133. nodes = menu_pool.get_nodes(request, namespace, root_id)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/menus/menu_pool.py" in get_nodes
161. nodes = self.apply_modifiers(nodes, request, namespace, root_id, post_cut=False, breadcrumb=breadcrumb)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/menus/menu_pool.py" in apply_modifiers
149. nodes = self._mark_selected(request, nodes)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/menus/menu_pool.py" in _mark_selected
171. if node.get_absolute_url() == request.path[:len(node.get_absolute_url())]:
Exception Type: TypeError at /zh-cn/
Exception Value: object of type 'type' has no len()
今天,在回顾我在项目 github 上创建错误的步骤时,我找到了问题的根源。
有一些 apphooks 挂在几个页面中,是在项目只有一种语言时创建的。我去了那些页面,保存并发布了草稿版本,它成功了!
简而言之:
- 识别出应用挂钩的页面
- 点击了 "Save and continue editing",然后点击了 "Publish draft"
- 重新启动服务器
我希望这对某人有所帮助。
干杯,感谢您的帮助!
我最近在我的项目中加入了英语和简体中文。但是,当我切换到我的(已发布)Chinese 页面时,它会在使用 show_menu
时抛出 TypeError。同样的事情不会发生在葡萄牙语和英语中
TypeError at /zh-cn/
object of type 'type' has no len()
Request Method: GET
Request URL: http://localhost:8000/zh-cn/
Django Version: 1.5.8
Exception Type: TypeError
Exception Value:
object of type 'type' has no len()
Exception Location: /home/marcos/django/project/env/local/lib/python2.7/site-packages/menus/menu_pool.py in _mark_selected, line 171
Python Executable: /home/marcos/django/project/env/bin/python
我做错了什么?
版本
Django 1.5.8
Django 内容管理系统 2.4.3
settings.py
LANGUAGES = (('pt', u'Português'), ('en', u'English'), ('zh-cn', u'中文'),)
CMS_LANGUAGES = LANGUAGES
base.html
{% load sekizai_tags i18n cms_tags menu_tags %}
(...)
<div class="nav top-nav">
<ul class="inner-nav">
{% show_menu 0 %}
</ul>
</div>
完整追溯
Traceback:
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
113. response = callback(request, *callback_args, **callback_kwargs)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/cms/views.py" in details
151. return render_to_response(template_name, context_instance=context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/shortcuts/__init__.py" in render_to_response
29. return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
177. return t.render(context_instance)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/base.py" in render
140. return self._render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render
66. return self.nodelist.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
124. return compiled_parent._render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render
66. return self.nodelist.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/classytags/core.py" in render
106. return self.render_tag(context, **kwargs)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/sekizai/templatetags/sekizai_tags.py" in render_tag
76. rendered_contents = nodelist.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render
369. return strip_spaces_between_tags(self.nodelist.render(context).strip())
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/classytags/core.py" in render
106. return self.render_tag(context, **kwargs)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/classytags/helpers.py" in render_tag
78. data = self.get_context(context, **kwargs)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/menus/templatetags/menu_tags.py" in get_context
133. nodes = menu_pool.get_nodes(request, namespace, root_id)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/menus/menu_pool.py" in get_nodes
161. nodes = self.apply_modifiers(nodes, request, namespace, root_id, post_cut=False, breadcrumb=breadcrumb)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/menus/menu_pool.py" in apply_modifiers
149. nodes = self._mark_selected(request, nodes)
File "/home/marcos/django/project/env/local/lib/python2.7/site-packages/menus/menu_pool.py" in _mark_selected
171. if node.get_absolute_url() == request.path[:len(node.get_absolute_url())]:
Exception Type: TypeError at /zh-cn/
Exception Value: object of type 'type' has no len()
今天,在回顾我在项目 github 上创建错误的步骤时,我找到了问题的根源。
有一些 apphooks 挂在几个页面中,是在项目只有一种语言时创建的。我去了那些页面,保存并发布了草稿版本,它成功了!
简而言之:
- 识别出应用挂钩的页面
- 点击了 "Save and continue editing",然后点击了 "Publish draft"
- 重新启动服务器
我希望这对某人有所帮助。
干杯,感谢您的帮助!