django初学者です。
form.py
class SignUpForm(UserCreationForm):
class Meta:
model = User fields = ("username","password1", "password2", "icon") def clean_password1(self):##################① password = self.cleaned_data.get('password1') if not re.search(r'\d', password): raise forms.ValidationError('数字が含まれていません') if not re.search(r'[a-zA-Z]', password): raise forms.ValidationError('アルファベットが含まれていません') return password
views.py
class SignUpView(generic.CreateView):
form_class = SignUpForm template_name = 'registration/signup.html' def get_success_url(self): ################② form = self.get_form() ################③ user = User.objects.get(username=form.data.get('username'))###########④ login(self.request, user) return reverse( 'accounts:userDetail', kwargs={'username': user.username })
サインアップをするロジックでform.pyでバリデーションを設定してサインアップが成功したらそのままログインするという
内容ですが
①のdef clean_password1(self)はクラスメソッドなのでしょうか?
②のdef get_success_url(self)を使ってますが結局reverseで別の画面に移動しています。
この関数を使う理由はなんでしょうか?
③self.get_form()ですがget_form()これはクラスメソッドでしょうか?
また何をしているメソッドなのでしょうか?
この時点でprint(form)としてもターミナルに何も表示されません。
④form.dataとありますが.dataとは何なのでしょうか。
print(form.data)を見ますとQueryDict:〜が表示されます。
長くなりまして申し訳ございません。どなたかご教示ください。
またググってみたのですがうまく探せません。
いい検索の仕方等ございましたら教えてください。
宜しくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー