2017-11-16 7 views
0

私のカスタムユーザーのauth djangoプロジェクトのパスワード変更フォームを変更しようとしています。私は少し問題に遭遇しています。多分私は疲れているかもしれません。多分私は間違っているか誤解しているので、私は助けを求めています。私はそれがこのような小さなことのための多くの仕事のように思えるが、私は '缶詰の'認証アプリケーションを作成しようとしている。この特定の問題の私の目標は、非ネイティブパッケージのaid ​​\ dependencyなしでPasswordChangeForm(SetPasswordForm)クラスにスタイルを適用することです。私の考え方は間違っていますか? urlsは、authビューから継承したビューを呼び出します。このビューは、変更されたフィールド値を持つauthフォームを継承するフォームを指します。前もって感謝します。Djangoの表示とフォームの継承

urls.py

from .views import ChangePasswordView 
from django.contrib.auth.views import (
    PasswordChangeDoneView, 
) 


urlpatterns = [ 
    path('change_password/', 
     ChangePasswordView, 
     name='password_change'), 
] 

views.py

from django.contrib.auth.decorators import login_required 
    from django.contrib.auth.views import PasswordChangeView 
    from .forms import ChangePasswordForm 

    @login_required 
    class ChangePasswordView(PasswordChangeView): 
     template_name='account/change_password_form.html' 
     form_class = ChangePasswordForm 

forms.py

from django import forms 
from django.utils.translation import gettext, gettext_lazy as _ 
from django.contrib.auth.forms import (
    PasswordChangeForm, 
    SetPasswordForm, 
) 

class ChangePasswordForm(PasswordChangeForm): 
    template_name='account/change_password_form.html' 
    old_password = forms.CharField(
     label=_("Old password"), 
     strip=False, 
     widget=forms.PasswordInput(attrs={'autofocus': True, 'placeholder': 'Password', 
           'class': 'form-control', 'required': 'true'}), 
    ) 

    new_password1 = forms.CharField(
     label=_("New Password"), 
     strip=False, 
     widget=forms.PasswordInput(attrs={'placeholder': 'Password', 
           'class': 'form-control', 'required': 'true'}), 
    ) 

    new_password2 = forms.CharField(
     label=_("Confirm Password"), 
     strip=False, 
     widget=forms.PasswordInput(attrs={'placeholder': 'Password', 
           'class': 'form-control', 'required': 'true'}), 

エラー

TypeError at /account/change_password/ init() takes 1 positional argument but 2 were given

答えて

0

それは常にささいなことだ...

urlpatterns = [ 
    path('change_password/', 
     ChangePasswordView, 
     name='password_change'), 
] 

は、それは遅

urlpatterns = [ 
    path('change_password/', 
     ChangePasswordView.as_view(), 
     name='password_change'), 
] 

する必要があります!あなたは疲れている!それを働かせてから、眠りにつく。 :-)

+0

私はそうだったと思う。それは私のコードですでに持っていたもので、私が取り出したものです。 'AttributeError: 'function'オブジェクトには属性 'as_view''がありません。 – Jaberwocky

+0

ああ待ってください。' url(...) 'ではなく' path(...) 'でなければなりません。 – skulegirl

+0

2.0でそれはパスです – Jaberwocky

関連する問題