详解Python odoo中嵌入html简单的分页功能


Posted in Python onMay 29, 2019

在odoo中,通过iframe嵌入 html,页面数据则通过controllers获取,使用jinja2模板传值渲染

html页面分页内容,这里写了判断逻辑

<!-- 分页 -->
<ul id="ty_paging">
  <li class="home" id="home"><a href="/car/budget/report/1" rel="external nofollow" ></a>首页</li>
  {% if current_page == 1 %}
  <li class="prev" id="prev"><</li>
  {% else %}
  <li class="prev" id="prev"><a href="/car/budget/report/{{current_page - 1}}" rel="external nofollow" ><</a></li>
  {% endif %}
  {% if current_page == total_page %}
  <li class="next" id="next">></li>
  {% else %}
  <li class="next" id="next"><a href="/car/budget/report/{{current_page + 1}}" rel="external nofollow" >></a></li>
  {% endif %}
  <li class="max">共{{total_page}}页</li>
  <li class="max">第{{current_page}}页</li>
  <input type="number" min="1" value="1" class="inputPage" id="inputPage"/>
  <li class="jump" id="jump"><a id="add" href="javascript:void(0)" rel="external nofollow" onclick="subNmbr()">跳转</a></li>

</ul>

在,odoo的controllers中的逻辑

class CarBudgetReport(http.Controller):
  @http.route('/car/budget/report/<int:page>', auth='public')
  def index(self, page=1, **kw):
    data1 = request.env['lims.car.scheme'].get_first_budget()
    total_page = int(len(data1) / 10) + 1
    if page > total_page:
      data = []
    else:
      data = data1[(page - 1) * 10: page * 10]
    return env.get_template(HTML_FIEL_NAME).render({'data': data, 'current_page': page, 'total_page': total_page})

 CSS文件:

/* 分页功能的通用样式 */
#ty_paging {
 overflow: hidden;
 display: block;
 width: 100%;
 margin-top: 20px;
 text-align: center;
 user-select: none;
 -webkit-user-select: none;
 -moz-user-select: none;
 -ms-user-select: none;
 font-size: 14px;
 color: #000000;
 background-color: #FFFFFF;
}
#ty_paging li {
 display: inline-block;
 height: 32px;
 width: 32px;
 line-height: 32px;
 margin: 0px 5px;
 padding: 0px;
 border: 1px solid #ddd;
 border-radius: 2px;
 cursor: pointer;
 vertical-align: top;
 text-align: center;
}
#ty_paging .home,#ty_paging .jump {
 width: 56px;
 height: 32px;
}
#ty_paging .max {
 width: 60px;
 border: none;
}
#ty_paging .inputPage {
 height: 32px;
 width: 56px;
 border: 1px solid #ddd;
 border-radius: 2px;
 text-align: center;
 color: #000000;
}

 在后台xml中需要将路由设置默认为1

<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
    <t t-name="BudgettIframe">
      <iframe src="car/budget/report/1" marginheight="0" marginwidth="0" width="100%" height="100%" />
    </t>
</templates>

html 分页js代码

<script>
  // 悬浮样式
  $('#home, #jump').mouseover(function () {
    // if ($(this).val() == ty_currentPage) return;
    $(this).css({
      'border-color': '#2db71a',
      'color': '#000000',
      // 'background-color': '#337ab7',
    });
  });
  $('#home, #prev, #next, #jump').mouseout(function () {
    // if ($(this).val() == ty_currentPage) return;
    $(this).css({
      'border-color': "#ddd",
      'color': '#666',
      // 'background-color': '#ffffff',
    });
  });
  $('#up, #down').mouseover(function () {
    // if ($(this).val() == ty_currentPage) return;
    $(this).css({
      'border-color': '#337ab7',
      'color': '#ffffff',
      'background-color': '#2db71a',
    });
  });
  $('#up, #down').mouseout(function () {
    // if ($(this).val() == ty_currentPage) return;
    $(this).css({
      'border-color': "#000000",
      'color': '#000000',
      'background-color': '#ffffff',
    });
  });
  // 点击跳转页面需要用到方法
  function subNmbr() {
    // 先获取到页面上input输入框中的值
    var subNmbr = document.getElementById('inputPage').value;
    // console.log(subNmbr);
    // 在获取li的id,在点击时做一个动作
    document.getElementById("jump").onclick = function () {
      //根据a标签的id获取链接,设置href属性
      var aObj = document.getElementById("add");
      // 把要跳转的页面连接传入href
      aObj.href = "/car/budget/report/" + subNmbr;
      //根据id获取超链接,设置文字内容
      aObj.innerText = "跳转";
    };
  }
</script>

之后便可以进行数据的简单分页

详解Python odoo中嵌入html简单的分页功能

总结

以上所述是小编给大家介绍的Python odoo中嵌入html简单的分页功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python解析网页源代码中的115网盘链接实例
Sep 30 Python
Python类的继承和多态代码详解
Dec 27 Python
学习Python selenium自动化网页抓取器
Jan 20 Python
python负载均衡的简单实现方法
Feb 04 Python
Anaconda入门使用总结
Apr 05 Python
python自动发送测试报告邮件功能的实现
Jan 22 Python
python实现植物大战僵尸游戏实例代码
Jun 10 Python
Django框架orM与自定义SQL语句混合事务控制操作
Jun 27 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 Python
python+tifffile之tiff文件读写方式
Jan 13 Python
Pygame的程序开始示例代码
May 07 Python
Python实现随机爬山算法
Jan 29 Python
Python 3.8中实现functools.cached_property功能
May 29 #Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
May 29 #Python
Python安装与基本数据类型教程详解
May 29 #Python
python登录WeChat 实现自动回复实例详解
May 28 #Python
Python语言进阶知识点总结
May 28 #Python
python图像和办公文档处理总结
May 28 #Python
python网络应用开发知识点浅析
May 28 #Python
You might like
一个基于jquery的图片切换效果
2010/07/06 Javascript
js 上传图片预览问题
2010/12/06 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
基于javascript实现碰撞检测
2020/03/12 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
使用httplib模块来制作Python下HTTP客户端的方法
2015/06/19 Python
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
python类的继承实例详解
2017/03/30 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
Python定义函数功能与用法实例详解
2019/04/08 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
python的常见矩阵运算(小结)
2019/08/07 Python
Python如何解除一个装饰器
2020/08/07 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
美国校园市场:OCM
2017/06/08 全球购物
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
房地产出纳岗位职责
2013/12/01 职场文书
幼儿园春游活动方案
2014/01/19 职场文书
法院反腐倡廉心得体会
2014/09/09 职场文书
售票员岗位职责
2015/02/15 职场文书
小英雄雨来观后感
2015/06/09 职场文书
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers
分析Python list操作为什么会错误
2021/11/17 Python
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技