I wrote a small authentication application where i used manual template rendering. I can fetch and update data from from forms but i just want to validate the fields. But i can't move forward as i didn't use any Django form models.Client side validation is going on but what about the Server side validation.
Using python v3 and Django v2 I didn't used forms model doesn't inherited from the forms.py . So how can i validate?? my tempalate file for signup. `
<form action="{% url 'register' %}" method="post">
{% csrf_token %}
{% for message in messages %}
<div class="alert {% if message.tags %} alert-{{ message.tags }}{% endif %}">{{ message|safe }}</div>
{% endfor %}
<h3>Registration Form</h3>
<div class="form-group">
<input type="text" name="first_name" placeholder="First Name" class="form-control" required>
<input type="text" name="last_name" placeholder="Last Name" class="form-control" required>
</div>
<div class="form-wrapper">
<input type="text" name="email" placeholder="Email Address" class="form-control" required>
<i class="zmdi zmdi-email"></i>
</div>
<div class="form-wrapper">
<input type="text" name="phone" placeholder="Phone" class="form-control" required>
<i class="zmdi zmdi-phone"></i>
</div>
<div class="form-wrapper">
<input type="password" name="password1" placeholder="Password" class="form-control" required>
<i class="zmdi zmdi-lock"></i>
</div>
<div class="form-wrapper">
<input type="password" name="password2" placeholder="Confirm Password" class="form-control"
required>
<i class="zmdi zmdi-lock"></i>
</div>
<button>Register
<i class="zmdi zmdi-arrow-right"></i>
</button>
</form>
</div>
</div>
` views.py
def register(request):
if request.method == "POST":
first_name = request.POST['first_name']
last_name = request.POST['last_name']
phone = request.POST['phone']
email = request.POST['email']
password1 = request.POST['password1']
password2 = request.POST['password2']
if password1 == password2:
if User.objects.filter(phone=phone).exists():
messages.info(request, 'Requested phone exists')
elif User.objects.filter(email=email).exists():
messages.info(request, 'Requested email exists')
return redirect('register')
else:
user = User.objects.create_complete_user(first_name=first_name, last_name=last_name, phone=phone,
email=email, password=password1)
user.save()
messages.info(request, 'successfully user object is created')
return redirect('login')
else:
messages.info(request, 'Passwords not matching')
return redirect('register')
else:
return render(request, 'signup.html')