﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
2566	Setting TEMPLATE_STRING_IF_INVALID = 'notempty'  breaks admin user creation	django@…	Adrian Holovaty	"If you set TEMPLATE_STRING_IF_INVALID to a non empty string for debugging purposes, then the admin user add will be broken.

{{{

AttributeError at /apps/admin/auth/user/add/
'str' object has no attribute 'field'
Request Method: 	GET
Request URL: 	http://localhost:8000/apps/admin/auth/user/add/
Exception Type: 	AttributeError
Exception Value: 	'str' object has no attribute 'field'
Exception Location: 	C:\pycon-tech\django\contrib\admin\templatetags\admin_modify.py in render, line 161
Template error

In template C:\pycon-tech\django\contrib\admin\templates\admin/change_form.html, error at line 55
Caught an exception while rendering: 'str' object has no attribute 'field'
45 	{% block after_field_sets %}{% endblock %}
46 	{% if change %}
47 	{% if ordered_objects %}
48 	<fieldset class=""module""><h2>{% trans ""Ordering"" %}</h2>
49 	<div class=""form-row{% if form.order_.errors %} error{% endif %} "">
50 	{% if form.order_.errors %}{{ form.order_.html_error_list }}{% endif %}
51 	<p><label for=""id_order_"">{% trans ""Order:"" %}</label> {{ form.order_ }}</p>
52 	</div></fieldset>
53 	{% endif %}
54 	{% endif %}
55 	{% for related_object in inline_related_objects %}{% edit_inline related_object %}{% endfor %}
56 	{% block after_related_objects %}{% endblock %}
57 	{% submit_row %}
58 	{% if add %}
59 	<script type=""text/javascript"">document.getElementById(""{{ first_form_field_id }}"").focus();</script>
60 	{% endif %}
61 	{% if auto_populated_fields %}
62 	<script type=""text/javascript"">
63 	{% auto_populated_field_script auto_populated_fields change %}
64 	</script>
65 	{% endif %}
}}}

{{{
Traceback (most recent call last):
File ""C:\pycon-tech\django\template\__init__.py"" in render_node
  706. result = node.render(context)
File ""C:\pycon-tech\django\template\defaulttags.py"" in render
  118. nodelist.append(node.render(context))
File ""C:\pycon-tech\django\contrib\admin\templatetags\admin_modify.py"" in render
  161. if relation.field.rel.edit_inline == models.TABULAR:

  AttributeError at /apps/admin/auth/user/add/
  'str' object has no attribute 'field'
}}}

{{{
 154. class EditInlineNode(template.Node):
 155. def __init__(self, rel_var):
 156.     self.rel_var = rel_var
 157.
 158. def render(self, context):
 159.     relation = template.resolve_variable(self.rel_var, context)
 160.     context.push()

*161.     if relation.field.rel.edit_inline == models.TABULAR: ...

 162.         bound_related_object_class = TabularBoundRelatedObject
 163.     else:
 164.         bound_related_object_class = StackedBoundRelatedObject
}}}

relation = '[' and
related_object = '[' in the context.
obviously ths is teh first character of my TEMPLATE_STRING_IF_INVALID. How it got there, I don't know yet.
{{{
context  	
[{}, {'forloop': {'parentloop': {}, 'last': False, 'counter': 1, 'revcounter0': 15, 'revcounter': 16, 'counter0': 0, 'first': True}, 'related_object': '['}, ...
}}}"	defect	closed	contrib.admin	dev	normal	fixed	admin user add		Unreviewed	0	0	0	0	0	0
