Skip to content

Regression: can't reuse a variable name in a {% for %} loop #640

@timgraham

Description

@timgraham

Hi, I bisected the introduction of some failures in Django's test suite to 1205e64:

$ ./tests/runtests.py forms_tests.widget_tests.test_multiplehiddeninput.MultipleHiddenInputTest.test_render_attrs

Traceback (most recent call last):
  File "/var/lib/jenkins/workspace/django-security-master/database/postgres/python/python3.6/tests/forms_tests/widget_tests/test_splithiddendatetimewidget.py", line 21, in test_render_value
    '<input type="hidden" name="date_0" value="2007-09-17" />'
  File "/var/lib/jenkins/workspace/django-security-master/database/postgres/python/python3.6/tests/forms_tests/widget_tests/base.py", line 23, in check_html
    output = widget.render(name, value, attrs=attrs, renderer=self.jinja2_renderer, **kwargs)
  File "/var/lib/jenkins/workspace/django-security-master/database/postgres/python/python3.6/django/forms/widgets.py", line 222, in render
    return self._render(self.template_name, context, renderer)
  File "/var/lib/jenkins/workspace/django-security-master/database/postgres/python/python3.6/django/forms/widgets.py", line 227, in _render
    return mark_safe(renderer.render(template_name, context))
  File "/var/lib/jenkins/workspace/django-security-master/database/postgres/python/python3.6/django/forms/renderers.py", line 32, in render
    return template.render(context, request=request).strip()
  File "/var/lib/jenkins/workspace/django-security-master/database/postgres/python/python3.6/django/template/backends/jinja2.py", line 81, in render
    return self.template.render(context)
  File "/var/lib/jenkins/workspace/django-security-master/database/postgres/python/python3.6/tests/.env/lib/python3.6/site-packages/jinja2/asyncsupport.py", line 76, in render
    return original_render(self, *args, **kwargs)
  File "/var/lib/jenkins/workspace/django-security-master/database/postgres/python/python3.6/tests/.env/lib/python3.6/site-packages/jinja2/environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "/var/lib/jenkins/workspace/django-security-master/database/postgres/python/python3.6/tests/.env/lib/python3.6/site-packages/jinja2/environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/var/lib/jenkins/workspace/django-security-master/database/postgres/python/python3.6/tests/.env/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise
    raise value.with_traceback(tb)
  File "/var/lib/jenkins/workspace/django-security-master/database/postgres/python/python3.6/django/forms/jinja2/django/forms/widgets/splithiddendatetime.html", line 1, in top-level template code
    {% include 'django/forms/widgets/multiwidget.html' %}
  File "/var/lib/jenkins/workspace/django-security-master/database/postgres/python/python3.6/django/forms/jinja2/django/forms/widgets/multiwidget.html", line 1, in top-level template code
    {% for widget in widget.subwidgets %}{% include widget.template_name %}{% endfor %}
UnboundLocalError: local variable 'l_1_widget' referenced before assignment

Let me know if I can help or provide additional info.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions