详解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中使用gzip模块压缩文件的简单教程
Apr 08 Python
python使用pymysql实现操作mysql
Sep 13 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
Apr 20 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 Python
pandas把所有大于0的数设置为1的方法
Jan 26 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
Jun 20 Python
django框架使用方法详解
Jul 18 Python
Tornado实现多进程/多线程的HTTP服务详解
Jul 25 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
TensorFlow——Checkpoint为模型添加检查点的实例
Jan 21 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
Feb 20 Python
如何表示python中的相对路径
Jul 08 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
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
php mysql 封装类实例代码
2016/09/18 PHP
js 金额文本框实现代码
2012/02/14 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
使用Python脚本操作MongoDB的教程
2015/04/16 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
Python实现将xml导入至excel
2015/11/20 Python
python实现内存监控系统
2021/03/07 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
Python进阶之迭代器与迭代器切片教程
2020/01/29 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
Pretty Little Thing美国:时尚女性服饰
2018/08/27 全球购物
介绍java中初始化块的使用
2012/09/11 面试题
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
水产养殖学应届生求职信
2013/09/29 职场文书
应届毕业生求职信范文分享
2013/12/26 职场文书
英文留学推荐信范文
2014/01/25 职场文书
电焊工岗位职责
2014/03/06 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
2014法制宣传日活动总结范文
2014/11/01 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书