Django学习笔记十七:添加签到功能

在..\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})


猜你喜欢

转载自blog.csdn.net/qq_30990097/article/details/80450774
今日推荐