{% extends 'base.html' %}

{% block content %}
<div class="container">
<h1>客户信息列表</h1>
<form class="form-inline mb-3" method="GET" action="{% url 'customer_list' %}">
<input class="form-control mr-sm-2" type="search" name="search_query" placeholder="Search..."
aria-label="Search" value="{{ request.GET.search_query }}">
<button class="btn btn-outline-primary my-2 my-sm-0 mb-3" type="submit">查询</button>
<a class="btn btn-primary my-2 my-sm-0 mb-3" href="{% url 'customer_create' %}">新增客户信息</a>
</form>
<div class="row">
{% for customer in customers %}
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100">
<div class="card-header bg-primary text-white">
<h5 class="card-title mb-0">{{ customer.cu_no }}</h5>
</div>
<div class="card-body">
<h5 class="card-title">{{ customer.cu_name }}</h5>
<p class="card-text"><strong>BILL TO:</strong> {{ customer.bill_to }}</p>
<p class="card-text"><strong>Address:</strong> {{ customer.bill_to_address }}</p>
<p class="card-text"><strong>Consignee:</strong> {{ customer.consignee }}</p>
<p class="card-text"><strong>SHIP TO:</strong> {{ customer.ship_to }}</p>
<p class="card-text"><strong>ADDRESS:</strong> {{ customer.ship_to_address }}</p>
<p class="card-text"><strong>CONTACT:</strong> {{ customer.contact }}</p>
<p class="card-text"><strong>SHIP BY:</strong> {{ customer.ship_by }}</p>
</div>
<div class="card-footer">
<a href="{% url 'customer_detail' customer.pk %}" class="btn btn-info">详情</a>
<a href="{% url 'customer_update' customer.pk %}" class="btn btn-warning">编辑</a>
<a href="{% url 'customer_delete' customer.pk %}" class="btn btn-danger">删除</a>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
<div>
<nav aria-label="Page navigation">
<ul class="pagination justify-content-center mt-3">
{% if customers.has_previous %}
<li class="page-item"><a class="page-link" href="?page=1">First</a></li>
<li class="page-item"><a class="page-link"
href="?page={{ customers.previous_page_number }}">Previous</a>
</li>
{% endif %}
<li class="page-item disabled"><a class="page-link" href="#">Page {{ customers.number }}
of {{ customers.paginator.num_pages }}</a></li>
{% if customers.has_next %}
<li class="page-item"><a class="page-link" href="?page={{ customers.next_page_number }}">Next</a>
</li>
<li class="page-item"><a class="page-link" href="?page={{ customers.paginator.num_pages }}">Last</a>
</li>
{% endif %}
</ul>
</nav>
</div>
{% endblock %}

card 卡片 html的更多相关文章

  1. Flutter学习笔记(21)--TextField文本框组件和Card卡片组件

    如需转载,请注明出处:Flutter学习笔记(21)--TextField文本框组件和Card卡片组件 今天来学习下TextField文本框组件和Card卡片组件. 只要是应用程序就少不了交互,基本上 ...

  2. flutter Card卡片列表组件

    一个 Material Design 卡片.拥有一个圆角和阴影 import 'package:flutter/material.dart'; import './model/post.dart'; ...

  3. Flutter AspectRatio、Card 卡片组件

    Flutter AspectRatio 组件 AspectRatio 的作用是根据设置调整子元素 child 的宽高比. AspectRatio 首先会在布局限制条件允许的范围内尽可能的扩展,widg ...

  4. Card 卡片

    将信息聚合在卡片容器中展示. 基础用法 包含标题,内容和操作. Card 组件包括header和body部分,header部分需要有显式具名 slot 分发,同时也是可选的. <el-card ...

  5. AspectRatio图片的宽高比、Card 卡片组件

    一.AspectRatio 组件 AspectRatio 的作用是根据设置调整子元素 child 的宽高比. AspectRatio 首先会在布局限制条件允许的范围内尽可能的扩展,widget 的高度 ...

  6. AspectRatio、Card 卡片组件

    一.Flutter AspectRatio 组件 AspectRatio 的作用是根据设置调整子元素 child 的宽高比. AspectRatio 首先会在布局限制条件允许的范围内尽可能的扩展,wi ...

  7. 3、card 卡片

    1.基本用法的使用 /* --- htm l----*/ <ion-content> <ion-card> <ion-card-header> Header < ...

  8. Bootstrap学习记录-3.Badge、Breadcrumb、Buttons、 Button Group、Card、Carousel

    1. Badge Badge作为数值标记组件,它能作为链接或按钮的一部分来提供计数作用,而且它通过使用相对字体大小来适应父级元素的大小.它的最基本的修饰符为.badge .badge-*. <b ...

  9. Android 之 2048 的游戏逻辑分析

    继续学习了极客学院的实战路径课程,讲到了2048游戏的编写过程,我在这里作个总结分享给大家(结果会附源代码和我改写后的代码): 这里主要包括两个方面:1.2048界面的绘制   2.2048算法逻辑的 ...

  10. English word

    第一部分  通过词缀认识单词 (常用前缀一) 1.a- ①加在单词(形容词)或词根前面,表示"不,无,非" acentric [ə'sentrik] a  无中心的(a+centr ...

随机推荐

  1. 基于 ESP8266_RTOS_SDK 实现声控灯

    #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdint.h&g ...

  2. 分享一个Objectarx 的凸包算法

    #include "stdafx.h" #include "MyTuBao.h" #include"MathUtil.h" MyTuBao: ...

  3. 深入理解Docker原理

    本文参考转载至:<深入剖析Kubernetes - 张磊> 更过优秀博文请关注:https://blog.bigcoder.cn 容器技术的核心功能,就是通过约束和修改进程的动态表现,从而 ...

  4. 【论文笔记】SegNet

    [深度学习]总目录 SegNet是Cambridge提出旨在解决自动驾驶或者智能机器人的图像语义分割深度网络,开放源码,基于caffe框架.SegNet运用编码-解码结构和最大池化索引进行上采样,最主 ...

  5. MDK5常见问题

    (1)MDK5下载时未找到对应的芯片 解决方式:需要下载pack包. 官方链接:https://www.keil.com/dd2/pack/ 其它链接:https://blog.csdn.net/ni ...

  6. 赛博斗地主——使用大语言模型扮演Agent智能体玩牌类游戏。

    通过大模型来实现多个智能体进行游戏对局这个想对已经比较成熟了无论是去年惊艳的斯坦福小镇还是比如metaGPT或者类似的框架都是使用智能体技术让大模型来操控,从而让大模型跳出自身"预测下一个t ...

  7. LeetCode 295. Find Median from Data Stream数据流的中位数 (C++/Java)

    题目: Median is the middle value in an ordered integer list. If the size of the list is even, there is ...

  8. ETL工具-nifi干货系列 第八讲 处理器PutDatabaseRecord 写数据库(详细)

    1.本节通过一个小例子来讲解下处理器PutDatabaseRecord,该处理器的作用是将数据写入数据库. 如下流程通过处理器GenerateFlowFile 生成数据,然后通过处理器JoltTran ...

  9. Gradle查看依赖及排除依赖的方法

    查看项目的编译依赖,同时写入文件aa.txt F:\sts4\order-test>gradlew :order-test-api:dependencies --configuration co ...

  10. LocalDateTime日期格式化和指定日期的时分秒

    LocalDateTime日期格式化和指定日期的时分秒 package com.example.core.mydemo.date; import java.time.LocalDate; import ...