0
ジャンゴ内のすべてのフォームフィールドの検証のエラー:クリア私は(forms.pyに)簡単なユーザ登録フォームを持っている
from django.contrib.auth.models import User
class UserForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput
validators=[MinLengthValidator(6)])
password_repeat = forms.CharField(widget=forms.PasswordInput)
class Meta:
model = User
fields = ['username', 'password','password_repeat']
誰かが何かを入力しようとすると、検証は私が同じ形式になりたい失敗した場合再度レンダリングされますが、すべてのフィールドがクリアされます。現時点では私の見解は(views.pyで)次のようになります。
def signup(request):
form = UserForm(request.POST or None)
if form.is_valid():
user = form.save(commit=False)
username = form.cleaned_data['username']
password = form.cleaned_data['password']
password_repeat = form.cleaned_data['password-repeat']
user.set_password(password)
user.save()
user = auth.authenticate(username=username, password=password)
if user is not None and user.is_active:
auth.login(request, user)
return redirect('/')
return render(request, 'signup.html', {'form': form})
問題はform.fields['username']
フィールドがまだ入力されたため、レンダリングするために渡されたユーザー名が含まれていることです。
私は今解決策を探していますが、今は見つけられません。私の推測では、解決策は、私が得るように見えない方法clean()
と関係があるということです。
申し訳ありませんが、私はこれをクリアしてください。私はエラーを表示するだけでなく、すべてのフィールドをクリアします。私が新しいフォームをインスタンス化するだけでは、エラーメッセージが失われます。 – FloodLuszt