2017-08-08 16 views
2

パスワード確認なしでUseCreationFormを作成できるかどうかは疑問です(password1のみ)。私が働いているコード:Django UserCreationFormパスワードが1つの場合

class UserRegistrationForm(UserCreationForm): 
    email = forms.EmailField(max_length=200, help_text='Required') 

    class Meta: 
     model = User 
     fields = ('username', 'email', 'password1') 

フォームは、フィールドパスワード2を持っています

#forms.py 
class UserRegistrationForm(UserCreationForm): 
    email = forms.EmailField(max_length=200, help_text='Required') 

    class Meta: 
     model = User 
     fields = ('username', 'email', 'password1', 'password2') 

#views.py 
class HomeView(View): 
    template_name = 'home.html' 

    def get(self, request): 
     queryset = Profile.objects.filter(verified=True) 
     form = UserRegistrationForm() 
     context = { 
      'object_list': queryset, 
      'form':form, 
      'num_of_users': User.objects.all().count() 
     } 
     return render(request, self.template_name, context) 

問題は、私はそのようforms.py作るときということ、です。それのどんな解決策ですか?

+1

あなたは解決策を試すことがあります:https://stackoverflow.com/a/39659646/8060120 –

+1

登録中に1つのパスワードフィールドを使用することはお勧めしません。パスワードを保存してパスワードを確認して、間違いをしないようにしてくださいパスワードを作成する – Exprator

答えて

2

あなたは、フォームの__init__()メソッドをオーバーライドして、必要なフィールド削除することができます。

class UserRegistrationForm(UserCreationForm): 
    email = forms.EmailField(max_length=200, help_text='Required') 

    class Meta: 
     model = User 
     fields = ('username', 'email', 'password1') 

    def __init__(self, *args, **kwargs): 
     super().__init__(*args, **kwargs) 
     del self.fields['password2'] 

重要:ユーザーができるのでとにかく、パスワードの入力だけで一つのフィールドを持っていることが一般的ではありませんがミスタイプ。セキュリティレベルは大幅に低下します。