python - Django Form and Database -
i working width django now. don't make sense that.
i want id , password form , check if password form correct compare password of database.
following codes.
please me.
models.py
from django.db import models class doctor(models.model): doctor_id = models.charfield(max_length=16, primary_key=true) clinic_id = models.foreignkey(clinic) doctor_email = models.charfield(max_length=64) doctor_password = models.charfield(max_length=32) doctor_name = models.charfield(max_length=32) create_date = models.datetimefield(auto_now_add=true) modify_date = models.datetimefield(auto_now=true)
forms.py
from django import forms .models import doctor class loginform(forms.form): class meta: model = doctor fields = ('doctor_id', 'doctor_password',)
views.py
from django.shortcuts import get_object_or_404, render django.http import httpresponse django.shortcuts import render django.contrib.auth.decorators import login_required .forms import loginform .models import doctor @ensure_csrf_cookie def user_login(request): if request.method == 'post': form = loginform(request.post) if form.is_valid(): _id = form.cleaned_data['doctor_id'] _password = form.cleaned_data['doctor_password'] b = doctor.objects.all().filter(doctor_id=_id) if _password doctor_password: login(request, user) return httpresponse('authenticated successfully') else: return httpresponse('disabled account') else: return httpresponse('invalid login') else: form = loginform() return render(request, 'apiv1/login.html', {'form': form})
login.html
{% extends "base.html" %} {% load staticfiles%} {% block title%}title{% endblock %} {% block remoshincss %}/static/css/style.css{% endblock %} {% block content %} <div class="container"> <div align="center" class="imgtop"><img id="profile-img" class="profile-img-card" src="/static/img/remoshinlogo.png" /></div> <div class="card card-container"> <p id="profile-name" class="profile-name-card"></p> <form class="form-signin" action="{% url 'login' %}" method="post">{% csrf_token %} <input type="user" id="userid" name="userid" class="form-control inputuser" placeholder="user-id" autofocus> <input type="password" id="password" name="password" class="form-control inputpassword" placeholder="password"> <input type="hidden" name="next" value="{{ next }}" /> <br> <div align="center"><button style="width: 200px;" class="btn btn-lg btn-primary btn-block btn-signin" type="submit"><font color="#708090">login</font></button></div> </form> </div> </div> {% endblock %}
import check_password
from django.contrib.auth.hashers import check_password
check password
pass_ = check_password(_password, b.doctor_password) if pass_ false: return httpresponse('invalid login')
code:
@ensure_csrf_cookie def user_login(request): if request.method == 'post': form = loginform(request.post) if form.is_valid(): _id = form.cleaned_data['doctor_id'] _password = form.cleaned_data['doctor_password'] docter = doctor.objects.filter(doctor_id=_id).last() if docter none: return httpresponse('invalid login') pass_ = check_password(_password, docter.doctor_password) if pass_ false: return httpresponse('invalid login') return httpresponse('authenticated successfully') else: return httpresponse('invalid login') else: form = loginform() return render(request, 'apiv1/login.html', {'form': form})
Comments
Post a Comment