5

独自のカスタムページが欲しいのですが、change_passwordすでにDjangoからの管理者ログインを使用しています(using from django.contrib.auth.decorators import login_required)。
管理者ログインが機能するようになりましたが、change_passwordページを変更したいと思います。

それ、どうやったら出来るの?
管理者ログインにリンクする方法がわかりません。または、change_passwordをカスタマイズしたいので、管理者ログインもカスタマイズする必要がありますか?

いくつかのガイダンスが必要です。ありがとう...

4

2 に答える 2

9

フォームをインポートできます

from django.contrib.auth.views import password_change

Djangoのpassword_changeビューを見ると。ビューを自分のニーズに合わせてカスタマイズするために提供できるビューパラメータが必要であることに気付くでしょう。これにより、Webアプリがよりドライになります。

def password_change(request,
                    template_name='registration/password_change_form.html',
                    post_change_redirect=None,
                    password_change_form=PasswordChangeForm,
                    current_app=None, extra_context=None):
    if post_change_redirect is None:
        post_change_redirect = reverse('django.contrib.auth.views.password_change_done')
    if request.method == "POST":
        form = password_change_form(user=request.user, data=request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(post_change_redirect)
    else:
        form = password_change_form(user=request.user)
    context = {
        'form': form,
    }
    if extra_context is not None:
        context.update(extra_context)
    return TemplateResponse(request, template_name, context,
                            current_app=current_app)

最も注目すべきは、template_nameあなたextra_contextの見解がこのように見えるようなものです

from django.contrib.auth.views import password_change

def my_password_change(request)
        return password_change(template_name='my_template.html', extra_context={'my_var1': my_var1})
于 2012-06-29T12:41:49.857 に答える
4

Djangoのテンプレートファインダーを使用すると、任意のテンプレートをオーバーライドできます。テンプレートフォルダーに、オーバーライドする管理者テンプレートを追加するだけです。次に例を示します。

templates/
   admin/
      registration/
         password_change_form.html
         password_reset_complete.html
         password_reset_confirm.html
         password_reset_done.html
         password_reset_email.html
         password_reset_form.html
于 2012-06-29T09:30:08.260 に答える