Django4全栈进阶之路16 项目实战(用户管理):user_list.html用户列表画面设计

首先在template模板文件夹中新建account子文件夹,用于存放用户管理相关模块页面。

 下面开始正式的设计:

1、模块代码设计

{% extends 'base.html' %}
{% block content %}
    <div style="margin-top: 16px;">
        <a href="{% url 'user_add' %}" class="btn btn-primary btn-sm">新增用户</a>
    </div>
    <div class="card mt-3">
        <div class="card-header">用户列表</div>
        <div class="card-body">
            <table class="table table-bordered">
                <thead>
                <tr>
                    <th>序号</th>
                    <th>用户名</th>
                    <th>邮箱</th>
                    <th>第一次登录时间</th>
                    <th>最后的登录时间</th>
                    <th>操作</th>
                </tr>
                </thead>
                {% if error_msg %}
                    <p class="error">{{ error_msg }}</p>
                {% else %}
                    <tbody>
                    {% for user in user_list %}
                        <tr>
                            <td>{{ user.id }}</td>
                            <td>{{ user.username }}</td>
                            <td>{{ user.email }}</td>
                            <td>{{ user.first_name }}</td>
                            <td>{{ user.last_name }}</td>
                            <td>
{#                                <div class="btn-group btn-group-sm">#}
{#                                    <a class="btn btn-primary " href="{% url 'user_edit' user.id %}">编辑</a>#}
{#                                    <a class="btn btn-danger " href="{% url 'user_delete' user.id %}"#}
{#                                       onclick="return confirm('确定要删除吗?')">删除</a>#}
{#                                </div>#}
{#                                <a class="btn btn-primary btn-xs" href="{% url 'user_edit' user.id %}">编辑</a>#}
{#                                <a class="btn btn-danger btn-xs" href="{% url 'user_delete' user.id %}"#}
{#                                   onclick="return confirm('确定要删除吗?')">删除</a>#}
                                <a class="btn btn-primary btn-sm" href="{% url 'user_edit' user.id %}">编辑</a>
                                <a class="btn btn-danger btn-sm" href="{% url 'user_delete' user.id %}"
                                   onclick="return confirm('确定要删除吗?')">删除</a>
                            </td>
                        </tr>
                    {% endfor %}
                    </tbody>
                {% endif %}
            </table>
        </div>
    </div>
{% endblock %}

 

2、路由设计:

主路由:

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
  # ... 其他 URL 模式 ...
  path('myapp/', include('MyApp.urls')),
]

子路由:

from django.urls import path

from . import views

urlpatterns = [
    # ... 其他 URL 模式 ...
    path('user/list/', views.user_list_view, name='user_list'),
]

 

3、视图设计:

@login_required
def user_list_view(request):
    users = User.objects.all
    if users:
        return render(request, 'account/user_list.html', {'user_list': users})
    else:
        error_msg = "No data was found"
        return render(request, 'account/user_list.html', {'error_msg': error_msg})

4、base.html菜单链接设置:

 <li class="nav-item active">
    <a class="nav-link" href="{% url 'user_list' %}">用户管理 <span class="sr-only">(current)</span></a>
 </li>

 

5、效果展示:

 

posted @ 2023-04-24 17:01  侬侬发  阅读(92)  评论(0编辑  收藏  举报