{% 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. docker之docker-compose

    docker-compose就是个二进制的工具,它可以单机编排,批量管理多个容器 [root@mcwk8s01 harbor]# file /usr/local/bin/docker-compose ...

  2. 改造 Kubernetes 自定义调度器

    原文出处:改造 Kubernetes 自定义调度器 | Jayden's Blog (jaydenchang.top) Overview Kubernetes 默认调度器在调度 Pod 时并不关心特殊 ...

  3. Redis内存容量评估

    业务侧申请redis服务器资源时,需要事先对redis容量做一个大致评估,之前的容量评估公式基本只是简单的 (key长度 value长度)* key个数,误差较大,后期经常需要进行缩扩容调整,因此提出 ...

  4. 关于Zotero组件在office word中的添加

    引言:学姐问我,怎么弄Zotero,在调试过程中遇到的问题及解决方案 Q&A Zotero的安装 找到官网(https://www.zotero.org/)点击download,安装(个人觉得 ...

  5. ChatTTS,语气韵律媲美真人的开源TTS模型,文字转语音界的新魁首,对标微软Azure-tts

    前两天 2noise 团队开源了ChatTTS项目,并且释出了相关的音色模型权重,效果确实非常惊艳,让人一听难忘,即使摆在微软的商业级项目Azure-tts面前,也是毫不逊色的. ChatTTS是专门 ...

  6. TensorRT环境配置(VS+opencv4.5)

    1 TensorRT下载 下载与TensorRT相匹配的CUDA和cuDNN版本:https://docs.nvidia.com/deeplearning/tensorrt/archives/tens ...

  7. 🐞vue兄弟组件中方法互相调用

    场景:父组件中同时引入两个子组件(A和B),此时B组件点击按钮需要调用A组件里面的方法 方案1:vue的事件总线 方案2:自定义事件($emit) 最终方案:方案2 父组件 具体操作 B组件上添加一个 ...

  8. Linux进程间通信-管道(pipe)

    本系列文章主要是学习记录Linux下进程间通信的方式. 常用的进程间通信方式:管道.FIFO.消息队列.信号量以及共享存储. 参考文档:<UNIX环境高级编程(第三版)> 参考视频:Lin ...

  9. 自用电脑+外网开放+SSL认证(纯免费)

    背景: 本文的目的主要是为了方便大家测试,不过有条件的情况下没必要学习了.主要是给那些没有服务器,公司也不给ssl认证的开发测试人员的一种方案:就像题目所说的那样. 纯免费,纯免费的话是有学习成本的, ...

  10. bpmn.js

    在 BPMN.js 中,$inject 属性通常用于声明依赖注入的模块列表.这些模块会在创建对象实例时由依赖注入框架(如 AngularJS)提供.以下是在 BPMN.js 中常见的一些 $injec ...