I am a Django developer and I am trying two put two forms in one html file(register and login forms), but when I write an invalid input into them, they didn’t return any error.
views.py
<code>def log(request):
if request.method == 'POST':
print(request.POST)
if 'email' in request.POST:
regisform = RegisterForms(request.POST)
if regisform.is_valid():
print("is valid")
clean_data = regisform.cleaned_data
user =User.objects.create_user(username=clean_data['user_name'],password=clean_data['password_2'],email=clean_data['email'])
login(request,user)
messages.success(request, "شما با موفقیت ثبت نام شدید." )
Profile.objects.get(user_id = request.user.id).hearts_time = jdatetime.datetime.today()
send_user_notification(user=user, payload={"head":"تبریک", "body":"به سایت ویکی ریاضی حوش آمدید."}, ttl=10)
return redirect('home:homepage')
else:
print("is not valid.")
else:
form = LoginForms(request.POST)
if form.is_valid():
data = form.data
print(data)
print("running")
try:
user = authenticate(request, username = data['username'],password=data['password'])
print(user)
except:
user =authenticate(request, email = data['email'],password=data['password'])
print(user)
if user is not None:
login(request, user)
messages.success(request, "شما با موفقیت وارد شدید.","warning")
else:
print('NOT LOGIN')
return redirect('home:homepage')
else:
print("Naderi")
form = LoginForms()
regisform = RegisterForms()
try:
content = {
'form':form,
'regist':regisform,
}
except:
content = {
'regist':regisform,
}
return render(request, 'accounts/login.html',content)
</code>
<code>def log(request):
if request.method == 'POST':
print(request.POST)
if 'email' in request.POST:
regisform = RegisterForms(request.POST)
if regisform.is_valid():
print("is valid")
clean_data = regisform.cleaned_data
user =User.objects.create_user(username=clean_data['user_name'],password=clean_data['password_2'],email=clean_data['email'])
login(request,user)
messages.success(request, "شما با موفقیت ثبت نام شدید." )
Profile.objects.get(user_id = request.user.id).hearts_time = jdatetime.datetime.today()
send_user_notification(user=user, payload={"head":"تبریک", "body":"به سایت ویکی ریاضی حوش آمدید."}, ttl=10)
return redirect('home:homepage')
else:
print("is not valid.")
else:
form = LoginForms(request.POST)
if form.is_valid():
data = form.data
print(data)
print("running")
try:
user = authenticate(request, username = data['username'],password=data['password'])
print(user)
except:
user =authenticate(request, email = data['email'],password=data['password'])
print(user)
if user is not None:
login(request, user)
messages.success(request, "شما با موفقیت وارد شدید.","warning")
else:
print('NOT LOGIN')
return redirect('home:homepage')
else:
print("Naderi")
form = LoginForms()
regisform = RegisterForms()
try:
content = {
'form':form,
'regist':regisform,
}
except:
content = {
'regist':regisform,
}
return render(request, 'accounts/login.html',content)
</code>
def log(request):
if request.method == 'POST':
print(request.POST)
if 'email' in request.POST:
regisform = RegisterForms(request.POST)
if regisform.is_valid():
print("is valid")
clean_data = regisform.cleaned_data
user =User.objects.create_user(username=clean_data['user_name'],password=clean_data['password_2'],email=clean_data['email'])
login(request,user)
messages.success(request, "شما با موفقیت ثبت نام شدید." )
Profile.objects.get(user_id = request.user.id).hearts_time = jdatetime.datetime.today()
send_user_notification(user=user, payload={"head":"تبریک", "body":"به سایت ویکی ریاضی حوش آمدید."}, ttl=10)
return redirect('home:homepage')
else:
print("is not valid.")
else:
form = LoginForms(request.POST)
if form.is_valid():
data = form.data
print(data)
print("running")
try:
user = authenticate(request, username = data['username'],password=data['password'])
print(user)
except:
user =authenticate(request, email = data['email'],password=data['password'])
print(user)
if user is not None:
login(request, user)
messages.success(request, "شما با موفقیت وارد شدید.","warning")
else:
print('NOT LOGIN')
return redirect('home:homepage')
else:
print("Naderi")
form = LoginForms()
regisform = RegisterForms()
try:
content = {
'form':form,
'regist':regisform,
}
except:
content = {
'regist':regisform,
}
return render(request, 'accounts/login.html',content)
forms.py
<code>class RegisterForms(forms.Form):
user_name = forms.CharField(max_length=30, widget=forms.TextInput(attrs={"placeholder":'username'}))
password_1 = forms.CharField(max_length=30,widget=forms.PasswordInput(attrs={'placeholder':'password'}))
password_2 = forms.CharField(max_length=30,widget=forms.PasswordInput(attrs={'placeholder':'Confirm password'}))
email = forms.EmailField(widget=forms.EmailInput(attrs={'placeholder':'Email'}))
captcha = ReCaptchaField(widget=ReCaptchaV2Checkbox)
def clean_password_2(self):
print('func 1 is begining.')
password1 = self.cleaned_data['password_1']
password2 = self.cleaned_data['password_2']
listletter = 'abcdefghijklmnopqrstuvwxyz'
listletterc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
adad = '1234567890'
print(password1,password2)
if password1 != password2:
raise forms.ValidationError('the passwords are not equal.')
elif len(password2)< 6:
raise forms.ValidationError('Short Password.')
small = 0
cap = 0
ada = 0
for i in range(26):
letter = listletter[i]
capp = listletterc[i]
if letter in password2:
small += 1
if capp in password2:
cap += 1
for i in range(10):
num = adad[i]
if num in password2:
ada += 1
if small == 0:
raise forms.ValidationError('do not use the small letters.')
if cap == 0:
raise forms.ValidationError('do not use the capital letters.')
if ada == 0:
raise forms.ValidationError('do not use numbers.')
def clean_user_name(self):
print('un')
usern = self.cleaned_data['user_name']
print(usern)
if User.objects.filter(username = usern).exists():
raise forms.ValidationError('Please choose another username.')
</code>
<code>class RegisterForms(forms.Form):
user_name = forms.CharField(max_length=30, widget=forms.TextInput(attrs={"placeholder":'username'}))
password_1 = forms.CharField(max_length=30,widget=forms.PasswordInput(attrs={'placeholder':'password'}))
password_2 = forms.CharField(max_length=30,widget=forms.PasswordInput(attrs={'placeholder':'Confirm password'}))
email = forms.EmailField(widget=forms.EmailInput(attrs={'placeholder':'Email'}))
captcha = ReCaptchaField(widget=ReCaptchaV2Checkbox)
def clean_password_2(self):
print('func 1 is begining.')
password1 = self.cleaned_data['password_1']
password2 = self.cleaned_data['password_2']
listletter = 'abcdefghijklmnopqrstuvwxyz'
listletterc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
adad = '1234567890'
print(password1,password2)
if password1 != password2:
raise forms.ValidationError('the passwords are not equal.')
elif len(password2)< 6:
raise forms.ValidationError('Short Password.')
small = 0
cap = 0
ada = 0
for i in range(26):
letter = listletter[i]
capp = listletterc[i]
if letter in password2:
small += 1
if capp in password2:
cap += 1
for i in range(10):
num = adad[i]
if num in password2:
ada += 1
if small == 0:
raise forms.ValidationError('do not use the small letters.')
if cap == 0:
raise forms.ValidationError('do not use the capital letters.')
if ada == 0:
raise forms.ValidationError('do not use numbers.')
def clean_user_name(self):
print('un')
usern = self.cleaned_data['user_name']
print(usern)
if User.objects.filter(username = usern).exists():
raise forms.ValidationError('Please choose another username.')
</code>
class RegisterForms(forms.Form):
user_name = forms.CharField(max_length=30, widget=forms.TextInput(attrs={"placeholder":'username'}))
password_1 = forms.CharField(max_length=30,widget=forms.PasswordInput(attrs={'placeholder':'password'}))
password_2 = forms.CharField(max_length=30,widget=forms.PasswordInput(attrs={'placeholder':'Confirm password'}))
email = forms.EmailField(widget=forms.EmailInput(attrs={'placeholder':'Email'}))
captcha = ReCaptchaField(widget=ReCaptchaV2Checkbox)
def clean_password_2(self):
print('func 1 is begining.')
password1 = self.cleaned_data['password_1']
password2 = self.cleaned_data['password_2']
listletter = 'abcdefghijklmnopqrstuvwxyz'
listletterc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
adad = '1234567890'
print(password1,password2)
if password1 != password2:
raise forms.ValidationError('the passwords are not equal.')
elif len(password2)< 6:
raise forms.ValidationError('Short Password.')
small = 0
cap = 0
ada = 0
for i in range(26):
letter = listletter[i]
capp = listletterc[i]
if letter in password2:
small += 1
if capp in password2:
cap += 1
for i in range(10):
num = adad[i]
if num in password2:
ada += 1
if small == 0:
raise forms.ValidationError('do not use the small letters.')
if cap == 0:
raise forms.ValidationError('do not use the capital letters.')
if ada == 0:
raise forms.ValidationError('do not use numbers.')
def clean_user_name(self):
print('un')
usern = self.cleaned_data['user_name']
print(usern)
if User.objects.filter(username = usern).exists():
raise forms.ValidationError('Please choose another username.')
and login forms:
<code>class LoginForms(forms.Form):
username = forms.CharField(max_length=30,widget=forms.TextInput(attrs={'class':'username','placeholder':'Username'}))
password = forms.CharField(max_length=30, widget=forms.PasswordInput(attrs={'class':'password','placeholder':'Password'}))
captcha = ReCaptchaField(widget=ReCaptchaV2Checkbox)
</code>
<code>class LoginForms(forms.Form):
username = forms.CharField(max_length=30,widget=forms.TextInput(attrs={'class':'username','placeholder':'Username'}))
password = forms.CharField(max_length=30, widget=forms.PasswordInput(attrs={'class':'password','placeholder':'Password'}))
captcha = ReCaptchaField(widget=ReCaptchaV2Checkbox)
</code>
class LoginForms(forms.Form):
username = forms.CharField(max_length=30,widget=forms.TextInput(attrs={'class':'username','placeholder':'Username'}))
password = forms.CharField(max_length=30, widget=forms.PasswordInput(attrs={'class':'password','placeholder':'Password'}))
captcha = ReCaptchaField(widget=ReCaptchaV2Checkbox)
about the html file:
<code> {% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script
src="https://kit.fontawesome.com/64d58efce2.js"
crossorigin="anonymous"
></script>
<link rel="stylesheet" href="{% static 'lanandsign.css' %}" />
<title>Sign in & Sign up Form</title>
</head>
<body>
<div class="container">
<div class="forms-container">
<div class="signin-signup">
<form action="" class="sign-in-form" method="post">
<h2 class="title">Sign in</h2>
{% csrf_token %}
<div class="input-field">
<i class="fas fa-user"></i>
{{ form.username }}
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
{{form.password}}
</div>
{{form.captcha}}
<input type="submit" value="Log in" class="btn solid">
<p class="social-text">Or Sign in with social platforms</p>
<div class="social-media">
<a href="{% url "accounts:Send_mail_resetpassword" %}" class="social-icon">
<i class="fa fa-key"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-google"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-linkedin-in"></i>
</a>
</div>
</form>
<form action="" class="sign-up-form" method="post">
<h2 class="title">Sign up</h2>
{% csrf_token %}
<div class="input-field">
<i class="fas fa-user"></i>
{{ regist.user_name }}
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
{{regist.password_1}}
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
{{regist.password_2}}
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
{{regist.email}}
</div>
{{regist.captcha}}
<input type="submit" value="Sign up" class="btn solid">
<p class="social-text">Or Sign up with social platforms</p>
<div class="social-media">
<a href="#" class="social-icon">
<i class="fab fa-facebook-f"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-google"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-linkedin-in"></i>
</a>
</div>
</form>
</div>
</div>
<div class="panels-container">
<div class="panel left-panel">
<div class="content">
<h3>New here ?</h3>
<p>
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Debitis,
ex ratione. Aliquid!
</p>
<button class="btn transparent" id="sign-up-btn">
Sign up
</button>
</div>
<img src="img/log.svg" class="image" alt="" />
</div>
<div class="panel right-panel">
<div class="content">
<h3>One of us ?</h3>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum
laboriosam ad deleniti.
</p>
<button class="btn transparent" id="sign-in-btn">
Sign in
</button>
</div>
<img src="img/register.svg" class="image" alt="" />
</div>
</div>
</div>
<script src="{% static 'lanandsign.js' %}"></script>
</body>
</html>
</code>
<code> {% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script
src="https://kit.fontawesome.com/64d58efce2.js"
crossorigin="anonymous"
></script>
<link rel="stylesheet" href="{% static 'lanandsign.css' %}" />
<title>Sign in & Sign up Form</title>
</head>
<body>
<div class="container">
<div class="forms-container">
<div class="signin-signup">
<form action="" class="sign-in-form" method="post">
<h2 class="title">Sign in</h2>
{% csrf_token %}
<div class="input-field">
<i class="fas fa-user"></i>
{{ form.username }}
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
{{form.password}}
</div>
{{form.captcha}}
<input type="submit" value="Log in" class="btn solid">
<p class="social-text">Or Sign in with social platforms</p>
<div class="social-media">
<a href="{% url "accounts:Send_mail_resetpassword" %}" class="social-icon">
<i class="fa fa-key"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-google"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-linkedin-in"></i>
</a>
</div>
</form>
<form action="" class="sign-up-form" method="post">
<h2 class="title">Sign up</h2>
{% csrf_token %}
<div class="input-field">
<i class="fas fa-user"></i>
{{ regist.user_name }}
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
{{regist.password_1}}
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
{{regist.password_2}}
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
{{regist.email}}
</div>
{{regist.captcha}}
<input type="submit" value="Sign up" class="btn solid">
<p class="social-text">Or Sign up with social platforms</p>
<div class="social-media">
<a href="#" class="social-icon">
<i class="fab fa-facebook-f"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-google"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-linkedin-in"></i>
</a>
</div>
</form>
</div>
</div>
<div class="panels-container">
<div class="panel left-panel">
<div class="content">
<h3>New here ?</h3>
<p>
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Debitis,
ex ratione. Aliquid!
</p>
<button class="btn transparent" id="sign-up-btn">
Sign up
</button>
</div>
<img src="img/log.svg" class="image" alt="" />
</div>
<div class="panel right-panel">
<div class="content">
<h3>One of us ?</h3>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum
laboriosam ad deleniti.
</p>
<button class="btn transparent" id="sign-in-btn">
Sign in
</button>
</div>
<img src="img/register.svg" class="image" alt="" />
</div>
</div>
</div>
<script src="{% static 'lanandsign.js' %}"></script>
</body>
</html>
</code>
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script
src="https://kit.fontawesome.com/64d58efce2.js"
crossorigin="anonymous"
></script>
<link rel="stylesheet" href="{% static 'lanandsign.css' %}" />
<title>Sign in & Sign up Form</title>
</head>
<body>
<div class="container">
<div class="forms-container">
<div class="signin-signup">
<form action="" class="sign-in-form" method="post">
<h2 class="title">Sign in</h2>
{% csrf_token %}
<div class="input-field">
<i class="fas fa-user"></i>
{{ form.username }}
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
{{form.password}}
</div>
{{form.captcha}}
<input type="submit" value="Log in" class="btn solid">
<p class="social-text">Or Sign in with social platforms</p>
<div class="social-media">
<a href="{% url "accounts:Send_mail_resetpassword" %}" class="social-icon">
<i class="fa fa-key"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-google"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-linkedin-in"></i>
</a>
</div>
</form>
<form action="" class="sign-up-form" method="post">
<h2 class="title">Sign up</h2>
{% csrf_token %}
<div class="input-field">
<i class="fas fa-user"></i>
{{ regist.user_name }}
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
{{regist.password_1}}
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
{{regist.password_2}}
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
{{regist.email}}
</div>
{{regist.captcha}}
<input type="submit" value="Sign up" class="btn solid">
<p class="social-text">Or Sign up with social platforms</p>
<div class="social-media">
<a href="#" class="social-icon">
<i class="fab fa-facebook-f"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-google"></i>
</a>
<a href="#" class="social-icon">
<i class="fab fa-linkedin-in"></i>
</a>
</div>
</form>
</div>
</div>
<div class="panels-container">
<div class="panel left-panel">
<div class="content">
<h3>New here ?</h3>
<p>
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Debitis,
ex ratione. Aliquid!
</p>
<button class="btn transparent" id="sign-up-btn">
Sign up
</button>
</div>
<img src="img/log.svg" class="image" alt="" />
</div>
<div class="panel right-panel">
<div class="content">
<h3>One of us ?</h3>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum
laboriosam ad deleniti.
</p>
<button class="btn transparent" id="sign-in-btn">
Sign in
</button>
</div>
<img src="img/register.svg" class="image" alt="" />
</div>
</div>
</div>
<script src="{% static 'lanandsign.js' %}"></script>
</body>
</html>
What is the problem? about what file? Please answer quickly.
Thank you.
I am using MySql for database and Django 4.2.6.