Я хочу добавить поле подтверждения пароля в django modelform и подтвердить оба пароля и подтвердить пароль. После ввода данных через шаблон эти данные будут храниться в базе данных. Но только три поля будут добавлены в базу данных, такие как имя, фамилия и адрес электронной почты. Итак, я хочу добавить данные всех полей в базу данных.
Вот моя модель:
class Register(models.Model):
first_name = models.CharField(max_length=30, blank=False)
last_name = models.CharField(max_length=30, blank=False)
email = models.EmailField(max_length=50, blank=False)
password = models.CharField(max_length=12, blank=False)
Вот моя модель:
class SignUpForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput())
password_confirm = forms.CharField(widget=forms.PasswordInput())
class Meta:
model = Register
fields = ['first_name', 'last_name', 'email','password']
def clean(self):
cleaned_data = super(SignUpForm, self).clean()
password = cleaned_data.get("password")
confirm_password = cleaned_data.get("password_confirm")
if password != confirm_password:
raise forms.ValidationError(
"password and confirm_password does not match"
)
Вот мой файл view.py:
def auth_register(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
form.save()
return HttpResponse('data has been saved...!!')
else:
form = SignUpForm()
return render(request, 'auth-register.html', {'form': form})
Вот код шаблона:
<form method="post" action="">{%csrf_token%}
<div class="row">
<div class="form-group col-6">
<label for="first_name">First Name : </label>
<input id="first_name" type="text" class="form-control" name="first_name" autofocus="">
</div>
<div class="form-group col-6">
<label for="last_name">Last Name : </label>
<input id="last_name" type="text" class="form-control" name="last_name">
</div>
</div>
<div class="form-group ">
<label for="email">Email : </label>
<input id="email" type="email" class="form-control" name="email">
<div class="invalid-feedback">
</div>
</div>
<div class="row">
<div class="form-group col-6">
<label for="password1" class="d-block">Password</label>
<input id="password1" type="password" class="form-control pwstrength" data-indicator="pwindicator" name="password1">
<div id="pwindicator" class="pwindicator">
<div class="bar"></div>
<div class="label"></div>
</div>
</div>
<div class="form-group col-6">
<label for="password_confirm" class="d-block">Password Confirmation</label>
<input id="password_confirm" type="password" class="form-control" name="password2">
</div>
</div>
<div class="form-group">
<div class="custom-control custom-checkbox">
<input type="checkbox" name="agree" class="custom-control-input" id="agree">
<label class="custom-control-label" for="agree">I agree with the terms and conditions</label>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-lg btn-block">
Register
</button>
</div>
</form>