在..\templates\login_success.html中添加签到链接:
在../templates中创建sign_index.html签到页面:
<!DOCTYPE html>
<html lang="en">
<head>
{% load bootstrap3 %} <!-- 加载bootstrap3应用 -->
{% bootstrap_css %} <!-- 加载CSS文件 -->
{% bootstrap_javascript%} <!-- 加载JavaScript文件 -->
<meta charset="UTF-8">
<title>发布会管理</title>
</head>
<body>
<!-- 导航栏 -->
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="#">{{ event.name }}</a> <!-- 将标题设置为发布会的名称 -->
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="/login_success/">发布会</a></li>
<li><a href="/guest_manage/">嘉宾</a></li>
</ul>
</div>
</div>
</nav>
<!-- 签到功能 -->
<div class="page-header" style="padding-top:80px;">
<div id="navbar" class="navbar-collapse collapse">
<form class="navbar-form" method="post" action="/sign_index_action/{{ event.id }}/"> <!-- 设置发布会与嘉宾导航链接 -->
{% csrf_token %}
<div class="form-group">
<input name="phone" type="text" placeholder="输入手机号" class="form-control">
</div>
<button type="submit" class="btn btn-success">签到</button>
<font color="red"> <!-- 签到表通过POST请求将签到手机号提交到/sign_index_action/{{ event.id }}路径 -->
<br>{{ hint }} <!-- 用于显示签到成功或失败状态 -->
<br>{{ guest.realname }}
<br>{{ guest.phone }}
</font>
</form>
</div>
</div>
</body>
</html>
在../guest/urls.py中添加签到页面路由及签到动作路由:
在../sign/views.py中添加签到页面及动作:
#签到页面
@login_required
def sign_index(request,eid):
event = get_object_or_404(Event,id=eid)
return render(request,"sign_index.html",{"event":event})
#签到动作
@login_required
def sign_index_action(request,eid):
event = get_object_or_404(Event,id=eid)
phone = request.POST.get("phone","")
print(phone)
result = Guest.objects.filter(phone=phone)
if not result:
return render(request,"sign_index.html",{"event":event,"hint":"手机号错误!"})
result = Guest.objects.filter(phone=phone,event_id=eid)
if not result:
return render(request,"sign_index.html",{"event":event,"hint":"发布会id或者手机号错误!"})
result = Guest.objects.get(phone=phone, event_id=eid)
if result.sign:
return render(request,"sign_index.html",{"event":event,"hint":"用户已签到!"})
else:
Guest.objects.filter(phone=phone,event_id=eid).update(sign="1")
return render(request,"sign_index.html",{"event":event,"hint":"签到成功!","guest":result})