내 자신의 사용자 정의 사용자 모델을 사용하고 있지만 django.contrib.auth 사용자 모델을 상속하고 있습니다. 사용자 이름, 전자 메일 및 암호 필드가 있습니다. 암호 필드가 기본적으로 상속에 의해 추가되므로 명시 적으로 암호 필드를 추가하지 않습니다. 명령 줄을 통해 수퍼 유저를 만들려고 할 때 일반적인 기본 Django 비밀번호 유효성 검사가 올바르게 작동합니다. 그러나, 내가 가입 양식을 가지고있을 때, 그것은 아닙니다. 제출을 클릭하면 이메일 및 사용자 이름 유효성 검사가 제대로 작동하지만 비밀번호 유효성 검사가 없습니다. 내가 원하는대로 입력하면 암호를 수락 할 수 있습니다. 암호 필드가 장고에서 기본 암호 검증을 제대로 검증 가도록 (듯이)장고 암호 유효성 검사가 작동하지 않습니다.
class RegisterView(SuccessMessageMixin, View):
form_class = RegisterForm
template_name = 'oauth/auth_form.html'
success_message = "You have successfully created an account!"
# Display blank form
def get(self, request):
form = self.form_class(None)
return render(request, self.template_name, {'form': form})
def post(self, request):
form = self.form_class(request.POST)
if form.is_valid():
user = form.save(commit=False) # Do not save to table yet
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user.set_password(password)
user.save()
# Let's try to login the user
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
return redirect('profiles: index')
return render(request, self.template_name, {'form': form})
가 어떻게 그것을 할 수 있습니다 :
여기 내보기의
class RegisterForm(forms.ModelForm):
class Meta:
model = User
fields = ['username', 'email', 'password']
username = forms.CharField(label='Username', widget=forms.TextInput(attrs={'placeholder': 'Username:'}))
email = forms.EmailField(label='Email', widget=forms.EmailInput(attrs={'placeholder': 'Email:'}))
password = forms.CharField(label='Password', widget=forms.PasswordInput(attrs={'placeholder': 'Password:'}))
여기 내 forms.py입니까?