#25596: Can't change user's password in DjangoAdmin when using custom User model
-------------------------------+--------------------------------------
     Reporter:  user0007       |                    Owner:  nobody
         Type:  Uncategorized  |                   Status:  new
    Component:  contrib.admin  |                  Version:  1.9a1
     Severity:  Normal         |               Resolution:
     Keywords:                 |             Triage Stage:  Unreviewed
    Has patch:  0              |      Needs documentation:  0
  Needs tests:  0              |  Patch needs improvement:  0
Easy pickings:  0              |                    UI/UX:  0
-------------------------------+--------------------------------------
Changes (by user0007):

 * needs_better_patch:   => 0
 * needs_tests:   => 0
 * needs_docs:   => 0


Old description:

> Django 1.9b1
>
> I'm using custom User model which is defined as:
>
> {{{
> AUTH_USER_MODEL = 'users.User'
>
> INSTALLED_APPS = [
>     'django.contrib.admin',
>     'django.contrib.auth',
>     ...
>     'apps.users',
> ]
> }}}
>
> When I tried to change user's password (using
> /admin/users/user/ID/password/) I've got an error:
>
> {{{Traceback:
>
> File "/src/django/django/core/handlers/base.py" in get_response
>   149.                     response =
> self.process_exception_by_middleware(e, request)
>
> File "/src/django/django/core/handlers/base.py" in get_response
>   147.                     response = wrapped_callback(request,
> *callback_args, **callback_kwargs)
>
> File "/src/django/django/utils/decorators.py" in _wrapped_view
>   149.                     response = view_func(request, *args, **kwargs)
>
> File "/src/django/django/views/decorators/cache.py" in _wrapped_view_func
>   57.         response = view_func(request, *args, **kwargs)
>
> File "/src/django/django/contrib/admin/sites.py" in inner
>   244.             return view(request, *args, **kwargs)
>
> File "/src/django/django/utils/decorators.py" in _wrapper
>   67.             return bound_func(*args, **kwargs)
>
> File "/src/django/django/views/decorators/debug.py" in
> sensitive_post_parameters_wrapper
>   76.             return view(request, *args, **kwargs)
>
> File "/src/django/django/utils/decorators.py" in bound_func
>   63.                 return func.__get__(self, type(self))(*args2,
> **kwargs2)
>
> File "/src/django/django/contrib/auth/admin.py" in user_change_password
>   155.                         args=(user.pk,),
>
> File "/src/django/django/core/urlresolvers.py" in reverse
>   600.     return
> force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args,
> **kwargs)))
>
> File "/src/django/django/core/urlresolvers.py" in _reverse_with_prefix
>   508.                              (lookup_view_s, args, kwargs,
> len(patterns), patterns))
>
> Exception Type: NoReverseMatch at /panel/users/user/8/password/
> Exception Value: Reverse for 'auth_user_change' with arguments '(8,)' and
> keyword arguments '{}' not found. 0 pattern(s) tried: []
> }}}

New description:

 Django 1.9b1

 I'm using custom User model which is defined as:

 {{{
 AUTH_USER_MODEL = 'users.User'

 INSTALLED_APPS = [
     'django.contrib.admin',
     'django.contrib.auth',
     ...
     'apps.users',
 ]
 }}}

 When I tried to change user's password (using
 /admin/users/user/ID/password/) I've got an error:

 Traceback:

 {{{

 File "/src/django/django/core/handlers/base.py" in get_response
   149.                     response =
 self.process_exception_by_middleware(e, request)

 File "/src/django/django/core/handlers/base.py" in get_response
   147.                     response = wrapped_callback(request,
 *callback_args, **callback_kwargs)

 File "/src/django/django/utils/decorators.py" in _wrapped_view
   149.                     response = view_func(request, *args, **kwargs)

 File "/src/django/django/views/decorators/cache.py" in _wrapped_view_func
   57.         response = view_func(request, *args, **kwargs)

 File "/src/django/django/contrib/admin/sites.py" in inner
   244.             return view(request, *args, **kwargs)

 File "/src/django/django/utils/decorators.py" in _wrapper
   67.             return bound_func(*args, **kwargs)

 File "/src/django/django/views/decorators/debug.py" in
 sensitive_post_parameters_wrapper
   76.             return view(request, *args, **kwargs)

 File "/src/django/django/utils/decorators.py" in bound_func
   63.                 return func.__get__(self, type(self))(*args2,
 **kwargs2)

 File "/src/django/django/contrib/auth/admin.py" in user_change_password
   155.                         args=(user.pk,),

 File "/src/django/django/core/urlresolvers.py" in reverse
   600.     return
 force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args,
 **kwargs)))

 File "/src/django/django/core/urlresolvers.py" in _reverse_with_prefix
   508.                              (lookup_view_s, args, kwargs,
 len(patterns), patterns))

 Exception Type: NoReverseMatch at /panel/users/user/8/password/
 Exception Value: Reverse for 'auth_user_change' with arguments '(8,)' and
 keyword arguments '{}' not found. 0 pattern(s) tried: []
 }}}

 django/auth/admin.py:151
 {{{
 reverse(
                         '%s:auth_%s_change' % (
                             self.admin_site.name,
                             user._meta.model_name,
                         ),
                         args=(user.pk,),
                     )
 }}}

 There should not be fixed "auth_" prefix, but something like
 user._meta.app_name(?)

--

--
Ticket URL: <https://code.djangoproject.com/ticket/25596#comment:1>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/066.93878070f97632ce7e10a4abd7272df9%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to