ユーザーが無効なデータを入力するまで検証を画面に表示したくありません。 ?!ここでDjangoの組み込みUserCreationForm検証を非表示にして、ユーザーが無効なデータを埋め込んだときに表示します
は私のユーザーフォームがforms.pyである:
class UserForm(UserCreationForm):
class Meta():
model = User
fields = ('username','first_name','last_name','email','password1','password2',)
def save(self,commit=True):
user = super(UserForm,self).save(commit=False)
user.username = self.cleaned_data["username"]
user.email = self.cleaned_data["email"]
user.first_name = self.cleaned_data["first_name"]
user.last_name = self.cleaned_data["last_name"]
user.password1 = self.cleaned_data["password1"]
user.password2 = self.cleaned_data["password2"]
if commit:
user.save()
return user
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.fields['username'].label = 'Username'
self.fields['first_name'].label = 'First Name'
self.fields['last_name'].label = 'Last Name'
self.fields['email'].label = 'Email Address'
self.fields['password1'].label = 'Password'
self.fields['password2'].label = 'Re-enter Password'
、ここでは私の登録機能である:
def register(request):
registered = False
if request.method == 'POST':
user_form = UserForm(data=request.POST)
profile_form = UserProfileForm(data=request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password1)
user.save()
c_user = user_form.instance.id
profile = profile_form.save(commit=False)
profile_form.instance.userid = AuthUser(c_user)
profile.save()
if 'profilepic' in request.FILES:
profile.profilepic = request.FILES['profilepic']
profile.save()
registered = True
else:
print(user_form.errors)
print(profile_form.errors)
else:
user_form = UserForm
profile_form = UserProfileForm
return render(request,'registration/register.html',{'user_form':user_form,'profile_form':profile_form,'registered':registered})
あなたのテンプレートはどこですか? –
写真で確認が表示されますか?ユーザー名:必須。 150文字以下文字、数字、@ /。/ +/-/_のみです。あなたのパスワードはあなたの他の個人情報に似ていることはできません。 パスワードは8文字以上である必要があります。 パスワードによく使用されるパスワードを使用することはできません。 パスワードは完全に数字であることはできません。私はユーザーが無効なデータを入力するまでこれらを隠したいと思います。私はそれらを画面に表示します –
はい、今は理解していますが、テンプレートはどこですか? –