python
  • django
  • 2017-04-12 45 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

    相關問題