#19349: admin/auth/user throws TypeError on save with invalid email address ------------------------------+--------------------------------------- Reporter: tim.bowden@… | Owner: nobody Type: Bug | Status: new Component: contrib.auth | Version: 1.5-alpha-1 Severity: Normal | Resolution: Keywords: user email | Triage Stage: Unreviewed Has patch: 0 | Needs documentation: 0 Needs tests: 0 | Patch needs improvement: 0 Easy pickings: 0 | UI/UX: 0 ------------------------------+---------------------------------------
Comment (by tim.bowden@…): Environment: Request Method: POST Request URL: http://127.0.0.1:8000/admin/auth/user/1/ Django Version: 1.5a1 Python Version: 2.7.1 Installed Applications: ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'django.contrib.admindocs') Installed Middleware: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware') Template error: In template /usr/local/lib/python2.7/dist- packages/django/contrib/admin/templates/admin/includes/fieldset.html, error at line 19 object of type 'NoneType' has no len() 9 : {% for field in line %} 10 : <div{% if not line.fields|length_is:'1' %} class ="field-box{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% if not field.is_readonly and field.errors %} errors{% endif %}"{% endif %}> 11 : {% if not line.fields|length_is:'1' and not field.is_readonly %}{{ field.errors }}{% endif %} 12 : {% if field.is_checkbox %} 13 : {{ field.field }}{{ field.label_tag }} 14 : {% else %} 15 : {{ field.label_tag }} 16 : {% if field.is_readonly %} 17 : <p>{{ field.contents }}</p> 18 : {% else %} 19 : {{ field.field }} 20 : {% endif %} 21 : {% endif %} 22 : {% if field.field.help_text %} 23 : <p class="help">{{ field.field.help_text|safe }}</p> 24 : {% endif %} 25 : </div> 26 : {% endfor %} 27 : </div> 28 : {% endfor %} 29 : </fieldset> Traceback: File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response 141. response = response.render() File "/usr/local/lib/python2.7/dist-packages/django/template/response.py" in render 105. self.content = self.rendered_content File "/usr/local/lib/python2.7/dist-packages/django/template/response.py" in rendered_content 82. content = template.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 140. return self._render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render 134. return self.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 830. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/usr/local/lib/python2.7/dist- packages/django/template/loader_tags.py" in render 124. return compiled_parent._render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render 134. return self.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 830. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/usr/local/lib/python2.7/dist- packages/django/template/loader_tags.py" in render 124. return compiled_parent._render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render 134. return self.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 830. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/usr/local/lib/python2.7/dist- packages/django/template/loader_tags.py" in render 63. result = block.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 830. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/usr/local/lib/python2.7/dist- packages/django/template/loader_tags.py" in render 63. result = block.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 830. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/usr/local/lib/python2.7/dist- packages/django/template/defaulttags.py" in render 188. nodelist.append(node.render(context)) File "/usr/local/lib/python2.7/dist- packages/django/template/loader_tags.py" in render 156. return self.render_template(self.template, context) File "/usr/local/lib/python2.7/dist- packages/django/template/loader_tags.py" in render_template 138. output = template.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 140. return self._render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render 134. return self.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 830. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/usr/local/lib/python2.7/dist- packages/django/template/defaulttags.py" in render 188. nodelist.append(node.render(context)) File "/usr/local/lib/python2.7/dist- packages/django/template/defaulttags.py" in render 188. nodelist.append(node.render(context)) File "/usr/local/lib/python2.7/dist- packages/django/template/defaulttags.py" in render 284. return nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 830. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/usr/local/lib/python2.7/dist- packages/django/template/defaulttags.py" in render 284. return nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 830. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 74. return node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render 87. output = force_text(output) File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in force_text 99. s = s.__unicode__() File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in __str__ 411. return self.as_widget() File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in as_widget 458. return widget.render(name, self.value(), attrs=attrs) File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/forms.py" in render 34. hasher = identify_hasher(encoded) File "/usr/local/lib/python2.7/dist- packages/django/contrib/auth/hashers.py" in identify_hasher 135. if len(encoded) == 32 and '$' not in encoded: Exception Type: TypeError at /admin/auth/user/1/ Exception Value: object of type 'NoneType' has no len() -- Ticket URL: <https://code.djangoproject.com/ticket/19349#comment:2> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-updates@googlegroups.com. To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.