#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.


Reply via email to