2017-01-28 11 views
0

パスワードをリセットするために組み込まれたauth.viewsを使用するように私のdjangoアプリケーションをセットアップしました。問題は、これはメッセージが次のようになっていることです。Djangoはパスワードリセットの電子メールの件名を指定します

Subject: Password reset on 127.0.0.1:8001 

You're receiving this email because you requested a password reset for your user account at 127.0.0.1:8001. 

Please go to the following page and choose a new password: 

http://127.0.0.1:8001/accounts/reset/MQ/4j3-d83f7cdb7f0203afe85e/ 

Your username, in case you've forgotten: myuser 

Thanks for using our site! 

The 127.0.0.1:8001 team 

ガンコンの配備からローカルホストを引き出しているようです。私はそれを設定するので、nginxがドメイン@port 80をポート8001のlocalhostにルーティングします。代わりに、これを "http://mydomain/accounts/reset ...."に変更する方法はありますか?

これは、十分に具体的でないため、人々がダウンワードしているようです。ここで私が設定しているものです:

url(r'^resetpassword/passwordsent/$', password_reset_done, {'template_name': 'password_recovery/recover_password_sent.html'}, name='password_reset_done'), 
url(r'^resetpassword/$', password_reset, {'template_name': 'password_recovery/recover_password.html'}, name='password_reset'), 

これらのURLはdjango.contrib.auth.viewsから引いています。そして、それは{{domain}}変数が彼らが電子メールを構築するために使用しているものだと思われます。問題は、gunicornデーモンがポート8001でlocalhostにバインドしているので、私のドメインとしてlocalhostを引っ張っているということです。実際のドメインを取得できるように変更する方法はありますか?settings.pyに変数がありますか?

答えて

1

Siteオブジェクトからサイト名が取得されているか、利用できない場合は、request.METAです。

https://docs.djangoproject.com/en/1.10/topics/auth/default/#django.contrib.auth.views.password_reset

だから、サイトのオブジェクトはあなたのためにこれを修正することができ構成します。

+0

これは、パスワードリセットビューを拡張する必要があることを意味しますか? –

+0

いいえ、(管理者またはシェルを使用して)Siteオブジェクトを追加し、使用する名前を付けてみてください。おそらく関連性があります:https://docs.djangoproject.com/en/1.10/ref/contrib/sites/ – user6731765

+0

うん、それはトリックでした!どうもありがとうございます。これが存在するのを知らなかった! –

1

私はあなただけリセットテンプレート内のドメイン変数はそこから取られているので、adminとhttp://mydomainにサイトを構成するために行くしていると思う:テンプレートで

current_site = get_current_site(request) 
    site_name = current_site.name 
    domain = current_site.domain 

ビューで

{% autoescape off %}{% load usertools %}Hi {{user|display_name}}, 

You're receiving this email because you requested a password reset for your user account at {{domain}}. 

Your username: {{user.get_username}} 

Please go to the following page and choose a new password: 

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

If clicking isn't working for you, simply paste the URL into your favorite web browser. 

See you soon!{% endautoescape %} 
+0

私は現在ビルスズの認証ビューを使用しています。これは、私はビューを再作成する必要がありますか? –

関連する問題