2016-09-16 14 views
0

Djangoからinbuilt password resetを使用したいと思います。 私のurls.pyは以下の通りです。Django:リバースでパスワードのリセットが完了していません

app_name = 'recruiter' 

urlpatterns= [ 
#urls 
] 

urlpatterns += [ 
url(r'^password_reset_done/$', password_reset_done, name='password_reset_done'), 
url(r'^password_reset/$', password_reset, name='password_reset'), 
url(r'^password_reset_confirm/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>,+)/$', password_reset_confirm, name='password_reset_confirm'), 
url(r'^password_reset_complete/$', password_reset_complete, name='password_reset_complete'), 
] 

このようにすれば、この組み込み関数の行にエラーが発生します。

reverse('password_reset') 

私はその後、app_name = 'recruiter'を削除した場合は正常に動作しますが、名前空間は、他のアプリの機能のために削除されます。どうすれば解決できますか?

また、私がapp_name = 'recruiter'を削除し、パスワードをリセットしようとすると、電子メールを送信した後、私はこの行にエラーが発生します。

{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %} 

エラーは次のようである:

NoReverseMatch at /recruiter/password_reset/ 

Reverse for 'password_reset_confirm' with arguments '()' and keyword arguments '{u'uidb64': 'Mw', u'token': u'4fd-f1aeba7ed3a5410a30da'}' not found. 1 pattern(s) tried: ['recruiter/password_reset_confirm/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>,+)/$'] 

答えて

0

は逆に呼び出しで名前空間を使用してください。

また、パスワードリセットURLを名前空間のない別のurls.pyに移動します。

+0

reverse()呼び出しはinbuilt関数内にあり、変更できません。 –

0

あなたのURLで引数としてpost_reset_redirectemail_template_nameを渡すことができます。

url(r'^password_reset/$', password_reset, {'email_template_name': 'recruiter/password_reset_email.html', 'post_reset_redirect': 'recruiter:password_reset_done'}, name='password_reset'), 

今ではrecruiter:password_reset_doneにリダイレクトされますし、password_reset_confirmのための適切な名前空間とrecruiter/templates/recruiter/password_reset_email.htmlに自分のメールテンプレートを使用することができます。

{{ protocol }}://{{ domain }}{% url 'recruiter:password_reset_confirm' uidb64=uid token=token %} 

template_nameをURLに渡して、独自のパスワードリセットテンプレートを使用することもできます。

url(r'^password_reset/$', password_reset, {'template_name': 'recruiter/password_reset.html', 'email_template_name': 'recruiter/password_reset_email.html', 'post_reset_redirect': 'recruiter:password_reset_done'}, name='password_reset'), 
関連する問題