django 学习(十三)—— 设计嘉宾管理


一、嘉宾列表

新建.../templates/guest_manage.html页面。

DOCTYPE html>
<html lang="zh-CN">
<head>
    {% load bootstrap3 %}
    {% bootstrap_javascript %}
    {% bootstrap_css %}
    <meta charset="UTF-8">
    <title>Guest Managetitle>
head>
<body>
    
    <nav class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <a class="navbar-brand" href="/event_manage/">Guest Manage Systema>
            div>
            <div id="navbar" class="collapse navbar-collapse">
                <ul class="nav navbar-nav">
                    <li><a href="/event_manage/">发布会a> li>
                    <li class="active"><a href="#">嘉宾a> li>
                ul>
                <ul class="nav navbar-nav navbar-right">
                    <li><a href="#">{{ user }}a> li>
                    <li><a href="/logout/">退出a> li>
                ul>
            div>
        div>
    nav>
    
    <div class="row" style="padding-top: 10px;">
        <div class="col-md-6">
            <table class="table table-striped">
                <thead>
                <tr>
                    <th>idth><th>名称th><th>手机th><th>Emailth><th>签到th><th>发布会th>tr>
                tr>
                thead>
                <tbody>
                {% for guest in guests %}
                     <tr>
                        <td>{{ guest.id }}td>
                        <td>{{ guest.realname }}td>
                        <td>{{ guest.phone }}td>
                        <td>{{ guest.email }}td>
                        <td>{{ guest.sign }}td>
                        <td>{{ guest.event }}td>
                    tr>
                {% endfor %}
                tbody>
            table>
        div>
    div>
body>
html>

2.在.../guest/urls.py文件中添加嘉宾路径的路由。

 3.打开.../sign/views.py文件,创建guest_manage()视图函数

from sign.models import Event, Guest 
…… 
# 嘉宾管理 
@login_required 
def guest_manage(request): 
    username = request.session.get('user', '') 
    guest_list = Guest.objects.all()  # 通过Guest.objects.all()查询所有嘉宾对象(数据)
    return render(request, "guest_manage.html", {"user": username, "guests": guest_list})   #并通过render()方法附加在guest_manage.html页面,并返回给客户端。

二、添加搜索功能

1.修改../guest_manage.html,添加嘉宾搜索表单


    <div class="page-header" style="padding-top: 60px;">
        <div id="navbar" class="navbar-collapse collapse">
            
            <form class="navbar-form" method="get" action="/search_guest_name/">
                <div class="form-group">
                    
                    <input name="name" type="text" placeholder="名称" class="form-control">
                div>
                <button type="submit" class="btn btn-success">搜索button>
            form>
        div>
    div>

2.添加搜索嘉宾路由

3.创建search_guest_name()函数

 三、添加分页器

 Django提供了Paginator类来实现分类功能

 1.打开.../sign/views.py文件,修改guest_manage()视图函数。

 

 2.修改../guest_manage.html,添加分页器

 
    <div class="pagination">
        <span class="step-links">
            {% if guests.has_previous %}
                <a href="?page={{ guests.previous_page_number }}">上一页a>
            {% endif %}
            <span class="current">
                Page {{ guests.number }} of {{ guests.paginator.num_pages }}.
            span> 
            {% if guests.has_next %}
                <a href="?page={{ guests.next_page_number }}">下一页a>
            {% endif %}
        span>
    div>
....