3

django の想定される PasswordResetForm 機能を使用して、django アプリケーションのパスワード リセット フォームを作成しようとしています。

forms.pyでフォームを作成しました

class UserForgotPasswordForm(PasswordResetForm):
    email = forms.EmailField(required=True,max_length=254)
    class Meta:
        model = User
        fields = ("email")

このフォームを利用するためviewに in views.pyを設定するのに問題があります。現在、次のものがあります。

def UserResetPassword(request):
    form = UserForgotPasswordForm(None, request.POST)
    if request.method == 'POST':
        if form.is_valid():
            email = request.POST.get('email', '')
            user = 

私のurls.py

urlpatterns = patterns('',
    (r'^ForgotPassword/$',UserResetPassword),
)

私が見つけたドキュメントが不足しており、多くの場合、PasswordResetFormdjango 機能を直接使用していないため、これをさらに使用する方法が少しわかりません。

誰か手を貸してくれませんか?

ありがとうございました。

4

1 に答える 1

5

form.save() を呼び出すだけで、PasswordResetForm が 1 回限りの使用リンクを生成し、それをユーザーにメールで送信します。フォームに入力された電子メールに一致するユーザーを検索します。

したがって、次のようになります。

def UserResetPassword(request):
    form = UserForgotPasswordForm(None, request.POST)
    if request.method == 'POST':
        if form.is_valid():
            form.save(from_email='blah@blah.com', email_template_name='path/to/your/email_template.html')

メール テンプレート名を指定しない場合、django はデフォルトのものを使用します

于 2013-09-23T00:03:30.393 に答える