详解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多进程机制实例详解
Jul 02 Python
Python算法之图的遍历
Nov 16 Python
Python编程实现的简单神经网络算法示例
Jan 26 Python
使用python生成目录树
Mar 29 Python
正确理解Python中if __name__ == '__main__'
Jan 24 Python
python实现函数极小值
Jul 10 Python
python实现简单银行管理系统
Oct 25 Python
Django Admin 上传文件到七牛云的示例代码
Jun 20 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
Aug 05 Python
python 爬虫如何正确的使用cookie
Oct 27 Python
详解matplotlib绘图样式(style)初探
Feb 03 Python
pytorch 梯度NAN异常值的解决方案
Jun 05 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的curl开启问题探讨
2014/04/08 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
jQuery select的操作实现代码
2009/05/06 Javascript
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
Python中的pprint折腾记
2015/01/21 Python
Python过滤列表用法实例分析
2016/04/29 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
django使用admin站点上传图片的实例
2019/07/28 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
国际贸易专业个人求职信范文分享
2013/12/14 职场文书
经典演讲稿范文
2013/12/30 职场文书
协议书样本
2014/04/23 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
普通党员对照检查材料
2014/08/28 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
推荐信范文大全
2015/03/27 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
Elasticsearch 聚合查询和排序
2022/04/19 Python