python
  • django
  • 2017-04-12 41 views 0 likes 
    0
    app_name = "myadmin" 
    
    urlpatterns = [ 
        url(r'^change-password/$', auth_views.password_change, 
         { 'template_name': 'myadmin/password_change', 'current_app': 'myadmin', }, 
         name='password_reset' 
         ), 
    
        url(r'^password-change-done/$', auth_views.password_change_done, 
         {'current_app': 'myadmin'}, 
         name='password_change_done' 
         ), 
    ] 
    

    当我访问的Django password_change视图127.0.01:8001/myadmin/change-password它引发后续错误:提高NoReverseMatch例外

    NoReverseMatch at /myadmin/change-password/ Reverse for 'password_change_done' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

    正如你可以看到我已经通过app_namepassword_change()看法,但它是不是视图内到达。

    回答

    0

    您正在为您的myadmin应用命名空间。因此,您应该使用

    reverse('myadmin:password_change_done') 
    

    有关命名空间的更多信息here

    +0

    这是坏的,如果我更新项目,整个应用程序将中断,我必须再次做。 如果这个错误,特别是其他应用程序也在使用'password_change_done'视图。 – Cody

    +0

    有没有什么办法可以使用'url()'将应用程序名称传递给这个视图? – Cody

    相关问题