python - 如何在 Django 的 views.py 中使用过滤器?
问题描述
我正在使用 Django 构建一个医院管理系统。我想创建多个用户,例如医生、患者和 HR。但是我没有使用django提供的用户认证系统。相反,我试图简单地使用 Html 和引导程序创建注册和登录表单。我正在使用 model.objects.filter() 函数来比较通过表单的输入和数据库的输入。但我得到了想要的结果。这是我在views.py 中的登录功能。
def login(request):
if request.method=="POST":
user = request.POST.get('user', '')
pass1 = request.POST.get('pass', '')
val=request.POST.get('val','')
if(val[0]=='Patient'):
abc = Patient.objects.filter(username=user,password=pass1)
n = len(abc)
if n>0:
print("hii")
return HttpResponse("<h1>Invalid Credentials</h1>")
else:
return render(request, 'home/p_portal.html')
else:
efg =Doctor.objects.filter(username=user, password=pass1)
if len(efg)==0:
return HttpResponse("<h1>Invalid Credentials</h1>")
else:
return render(request, 'home/d_portal.html')
return render(request, 'home/login.html')
登录表单:
<form method="post" onsubmit="return validate()" action="/home/login/">{% csrf_token %}
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="s1" value="Patient" name='val'>
<label class="form-check-label" for="s1">
Patient
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="s2" value="Doctor" name='val'>
<label class="form-check-label" for="s2">
Doctor
</label>
</div>
</div>
<div class="form-group col-md-6">
<label for="exampleInputEmail1">Username</label>
<input type="text" class="form-control" id="exampleInputEmail1" name='user'>
<!-- <small id="emailHelp" class="form-text text-muted">We'll never share your email with
anyone else.</small>-->
</div>
<div class="form-group col-md-6">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1" name="'pass">
</div>
<button type="submit" class="btn btn-primary">Login</button>
</form>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-
DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous">
</script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"
integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI"
crossorigin="anonymous"></script>
</body>
<script type=text/javascript>
function validate(){
var s1=document.getElementById("s1");
var s2=document.getElementById("s2");
var user=document.getElementById("user");
if(s1.checked==true && s2.checked==true){
alert("Select only one");
return false;
}
else if(s1.checked==true){
alert("hii!"+user.value);
console.log("Patient");
return true;}
else if(s2.checked==true){
alert("hii!"+user.value);
console.log("Doctor");
return true;}
else{
alert("nothing selected");
console.log("nothing");
return false;}
}
</script>
请给我一个方法。
解决方案
推荐阅读
- css - 高度动画在 CSS 示例中不起作用
- python - Python:带比较的条件
- curl - curl 输出 JSON 解析数据
- javascript - (Ubuntu/Linux) 如何使用 NodeJS 在后台运行 javascript 代码?
- html5-canvas - 跨浏览器在画布上绘制巨大图像的一部分
- excel - Excel 2016:使用功能区 XML 将分析组添加到 Windows 和 Mac 的自定义选项卡
- python - 在“while”循环中写入 HTML 文件时 Python“TypeError”
- c# - 强制方法等待计时器在c#中停止
- vue.js - 如何修改子Vue组件中的值
- angular - 嵌套数组上的AngularTS递归过滤器