详解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发送邮件实例
Jan 10 Python
使用Python编写基于DHT协议的BT资源爬虫
Mar 19 Python
Python爬虫之模拟知乎登录的方法教程
May 25 Python
python队列通信:rabbitMQ的使用(实例讲解)
Dec 22 Python
Python RabbitMQ消息队列实现rpc
May 30 Python
Python设计模式之组合模式原理与用法实例分析
Jan 11 Python
python利用百度云接口实现车牌识别的示例
Feb 21 Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 Python
python对接ihuyi实现短信验证码发送
May 10 Python
Python DES加密实现原理及实例解析
Jul 17 Python
如何使用PyCharm引入需要使用的包的方法
Sep 22 Python
Python3.10的一些新特性原理分析
Sep 15 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
PHP静态类
2006/11/25 PHP
让PHP支持页面回退的两种方法[转]
2007/02/14 PHP
深入了解PHP类Class的概念
2012/06/14 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
写的htc的数据表格
2007/01/20 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
详解nodejs微信公众号开发——6.自定义菜单
2017/04/13 NodeJs
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
对vue生命周期的深入理解
2020/12/03 Vue.js
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
python学习基础之循环import及import过程
2018/04/22 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
Python模块相关知识点小结
2020/03/09 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
2020/10/10 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
Java基础之this关键字的使用
2021/06/30 Java/Android