0.7.1 introduces error in flattening
radiac opened this issue · comments
Under django 1.8.8 using django cms, my templates are failing with the error dictionary update sequence element #0 has length 0; 2 is required
. Problem went away when I reverted to 0.7.0. The failing traceback (below) had calls to the functions modified in 0.7.1 just before it fails.
We've got a complex codebase using django cms, and I'm afraid I don't have time to come up with a standalone proof of this failure, but it's triggering on a view where an InclusionTag
includes a template which has more classy-tags.
Traceback:
File "venv/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
164. response = response.render()
File "venv/lib/python3.4/site-packages/django/template/response.py" in render
158. self.content = self.rendered_content
File "venv/lib/python3.4/site-packages/django/template/response.py" in rendered_content
135. content = template.render(context, self._request)
File "venv/lib/python3.4/site-packages/django/template/backends/django.py" in render
74. return self.template.render(context)
File "venv/lib/python3.4/site-packages/django/template/base.py" in render
210. return self._render(context)
File "venv/lib/python3.4/site-packages/django/test/utils.py" in instrumented_test_render
96. return self.nodelist.render(context)
File "venv/lib/python3.4/site-packages/django/template/base.py" in render
905. bit = self.render_node(node, context)
File "venv/lib/python3.4/site-packages/django/template/debug.py" in render_node
79. return node.render(context)
File "venv/lib/python3.4/site-packages/django/template/loader_tags.py" in render
135. return compiled_parent._render(context)
File "venv/lib/python3.4/site-packages/django/test/utils.py" in instrumented_test_render
96. return self.nodelist.render(context)
File "venv/lib/python3.4/site-packages/django/template/base.py" in render
905. bit = self.render_node(node, context)
File "venv/lib/python3.4/site-packages/django/template/debug.py" in render_node
79. return node.render(context)
File "venv/lib/python3.4/site-packages/classytags/core.py" in render
146. return self.render_tag(context, **kwargs)
File "venv/lib/python3.4/site-packages/sekizai/templatetags/sekizai_tags.py" in render_tag
83. rendered_contents = nodelist.render(context)
File "venv/lib/python3.4/site-packages/django/template/base.py" in render
905. bit = self.render_node(node, context)
File "venv/lib/python3.4/site-packages/django/template/debug.py" in render_node
79. return node.render(context)
File "venv/lib/python3.4/site-packages/classytags/core.py" in render
146. return self.render_tag(context, **kwargs)
File "venv/lib/python3.4/site-packages/cms/templatetags/cms_tags.py" in render_tag
672. rendered_contents = nodelist.render(context)
File "venv/lib/python3.4/site-packages/django/template/base.py" in render
905. bit = self.render_node(node, context)
File "venv/lib/python3.4/site-packages/django/template/debug.py" in render_node
79. return node.render(context)
File "venv/lib/python3.4/site-packages/django/template/loader_tags.py" in render
65. result = block.nodelist.render(context)
File "venv/lib/python3.4/site-packages/django/template/base.py" in render
905. bit = self.render_node(node, context)
File "venv/lib/python3.4/site-packages/django/template/debug.py" in render_node
79. return node.render(context)
File "venv/lib/python3.4/site-packages/django/template/loader_tags.py" in render
65. result = block.nodelist.render(context)
File "venv/lib/python3.4/site-packages/django/template/base.py" in render
905. bit = self.render_node(node, context)
File "venv/lib/python3.4/site-packages/django/template/debug.py" in render_node
79. return node.render(context)
File "venv/lib/python3.4/site-packages/classytags/core.py" in render
146. return self.render_tag(context, **kwargs)
File "venv/lib/python3.4/site-packages/cms/templatetags/cms_tags.py" in render_tag
301. content = get_placeholder_content(context, request, page, name, inherit, nodelist)
File "venv/lib/python3.4/site-packages/cms/templatetags/cms_tags.py" in get_placeholder_content
233. content = render_placeholder(placeholder, context, name)
File "venv/lib/python3.4/site-packages/cms/plugin_rendering.py" in render_placeholder
163. content.extend(render_plugins(plugins, context, placeholder, processors))
File "venv/lib/python3.4/site-packages/cms/plugin_rendering.py" in render_plugins
92. out.append(plugin.render_plugin(context, placeholder, processors=processors))
File "venv/lib/python3.4/site-packages/cms/models/pluginmodel.py" in render_plugin
186. return render_plugin(context, instance, placeholder, template, processors, context.current_app)
File "venv/lib/python3.4/site-packages/cms/plugin_rendering.py" in render_plugin
62. content = render_to_string(template, context)
File "venv/lib/python3.4/site-packages/django/template/loader.py" in render_to_string
99. return template.render(context, request)
File "venv/lib/python3.4/site-packages/django/template/backends/django.py" in render
74. return self.template.render(context)
File "venv/lib/python3.4/site-packages/django/template/base.py" in render
210. return self._render(context)
File "venv/lib/python3.4/site-packages/django/test/utils.py" in instrumented_test_render
96. return self.nodelist.render(context)
File "venv/lib/python3.4/site-packages/django/template/base.py" in render
905. bit = self.render_node(node, context)
File "venv/lib/python3.4/site-packages/django/template/debug.py" in render_node
79. return node.render(context)
File "venv/lib/python3.4/site-packages/classytags/core.py" in render
146. return self.render_tag(context, **kwargs)
File "venv/lib/python3.4/site-packages/classytags/helpers.py" in render_tag
88. flatten_context(self.get_context(context, **kwargs))
File "venv/lib/python3.4/site-packages/classytags/utils.py" in flatten_context
90. return context.flatten()
File "venv/lib/python3.4/site-packages/django/template/context.py" in flatten
110. flat.update(d)
Exception Type: ValueError at /path/
Exception Value: dictionary update sequence element #0 has length 0; 2 is required
See #33
Fixed in #35.
Um I have a django 1.4 project and then got this error, I then reverted to classy-tags 0.7.0 and it worked! Thank You!!!
@zinglax just for your information, 0.7.2 is out for a few days now that also fixes this, so downgrading is no longer required.
Oh nice that's good to hear. thanks for the update @ojii