前提・実現したいこと
パスワードが確認用パスワードと一致しない場合にフォームの上または下に”一致しません”と表示したい
該当のソースコード
form
1class RegisterForm(forms.ModelForm): 2 class Meta: 3 model = CostomUser 4 fields = ('username','last_name','first_name','password',) 5 widget = { 6 'password': forms.PasswordInput(attrs = {'placeholder':'password'}), 7 } 8 password2 = forms.CharField( 9 label = '確認用password', 10 required = True, 11 strip=False, 12 widget=forms.PasswordInput(attrs={'placeholder':'確認用password'}) 13 ) 14 15 def __init__(self,*args,**kwargs): 16 super().__init__(*args,**kwargs) 17 self.fields['username'].widget.attrs = {'placeholder':'username'} 18 for field in self.fields: 19 self.fields[field].required = True 20 21 def clean(self): 22 super().clean() 23 password = self.cleaned_data['password'] 24 password2 = self.cleaned_data['password2'] 25 if password != password2: 26 raise forms.ValidationError("パスワードと確認用パスワードが一致しません") 27 return password2 28
↑このValidationErrorはどういう働きをするのかがわかりません
view
1class RegisterView(FormView): 2 3 def get(self,request,*args,**kwargs): 4 5 return render(request,'schedule/signup.html',{'form':RegisterForm}) 6 7 def post(self,request,*args,**kwargs): 8 form = RegisterForm(request.POST) 9 if form.is_valid(): 10 user = form.save(commit=False) 11 user.set_password(form.cleaned_data['password']) 12 user.save() 13 return render(request,'schedule/register.html',{'form':form}) 14 15 16 17 18signup = RegisterView.as_view() 19 20
html
1<!DOCTYPE html> 2<html> 3 <meta charset="utf-8"> 4 <body> 5 6 <form action= "{% url 'schedule:signup' %}" method="post"> 7 {{ form.errors.password }} 8 <label>{{ form.username.label }}{{ form.username}}</label><br/> 9 <label>{{ form.last_name.label }}{{ form.last_name}}</label><br/> 10 <label>{{ form.first_name.label }}{{ form.first_name}}</label><br/> 11 <label>{{ form.password.label }}{{ form.password}}</label><br/> 12 <label>{{ form.password2.label }}{{ form.password2}}</label><br/> 13 {% csrf_token %} 14 <input type="submit" value="登録"> 15 </form> 16 </body> 17</html> 18
補足情報(FW/ツールのバージョンなど)
本やサイトを見本にして少し変えてみて書いてみました。
djangoについてもpythonについても初心者です
回答1件
あなたの回答
tips
プレビュー