第十三章Odoo12开发之创建网站前端功能I我的博客I

Odoo起初是一个后台系统,但很快就有了前端界面的需求。早期基于后台界面的门户界面不够灵活并且对移动端不友好。为解决这一问题,Odoo引入了新的网站功能,为系统添加了CMS(ContentManagementSystem)内容管理系统。这使得我们无需集成第三方CMS便可创建美观又高效的前端。本文中我们将学习如何利用Odoo自带的网站功能开发面向前端的插件模块。

本文主要内容有:

1、添加library_website/models/library_member.py文件

2、添加library_website/models/__init__.py文件:

3、添加library_website/__init__.py文件:

4、添加library_website/views/library_member.xml文件:

访问这些网页的都是门户用户,无需访问后台菜单。我们需要为这个用户组设置安全访问权限,否则会在使用图书网站功能时报权限错误。

5、添加library_website/security/ir.model.access.csv文件,添加对图书模型的读权限:

6、在library_website/security/library_security.xml文件中添加记录规则来限制门户用户所能访问的记录:

base.group_portal是门户用户组的标识符。在创建门户用户时,应设置他们的用户类型为Portal,而不是InternalUser。这会让他们属于门户用户组并继承我们上面定义的访问权限:

小贴士:在模型中使用ACL和记录规则来实现安全权限比使用控制器的逻辑要更为安全。这是因为攻击者有可能跳过网页控制器直接使用RPC来访问模型API。

了解了这些,我们就可以开始实现图书网站的功能了。但首先我们来使用简单的HelloWorld网页简短地介绍下基本网站概念。

要开始了解Odoo网页开发的基础,我们将先实现一个HelloWorld网页来展示基本概念和技术。很有想象空间,是不是?

要创建第一个网页,我们需要一个控制器对象。首先来添加controllers/hello.py文件:

1、在library_website/__init__.py文件中添加如下行:

2、在library_website/controllers/__init__.py文件中添加如下行:

3、添加实际的控制器文件library_website/controllers/hello.py,代码如下:

本例中方法执行的处理非常简单,它返回一个带有HTML标记的文本字符串,HelloWorld。

使用Python字符串来创建HTML很快就会觉得乏味。QWeb可用来增添色彩,下面就使用模板来写一个改进版的HelloWorld网页。QWeb模板通过XML数据文件添加,技术层面上它是与表单、列表视图类似的一种视图类型。它们甚至存储在同一个技术模型ir.ui.view中。

然后添加实际的数据文件views/helloworld_template.xml,内容如下:

模板的渲染是通过render()函数的request对象来实现的。

小贴士:注意我们添加了**kwargs方法参数。使用该参数,HTTP请求中的任意附加参数,如GET或POST请求参数,可通过kwargs字典捕获。这会让我们的方法更加健壮,因为即便添加了未预期的参数也不会产生错误。

下面我们来增加点趣味性,创建我们自己的简单CMS。为此我们可以通过URL在路由中使用模板名(一个页面),然后对其进行渲染。然后就可以动态创建网页,通过我们的CMS来提供服务。实现方法很简单:

在werkzeug的行话中,endpoint是路由的别名,由其静态部分(不含占位符)来表示。比如,CMS示例中的endpoint为/hellocms。

大多数情况下,我们要将页面集成到Odoo网站中,因此接下来的示例将使用website插件模块。

前面的示例并未集成到Odoo网站中,并有页面footer和网站菜单。Odoo的website插件模板为方便大家提供这些功能。

要使用网站功能,我们需要在工作实例中安装website插件模块。应当在library_website插件模块中添加这一依赖,修改__manifest__.py的depends内容如下:

要使用网站功能,我们需要对控制器和QWeb模板进行一些修改。控制器中可在路由上添加一个额外的website=True参数:

集成website模块并非严格要求website=True参数,不添加它也可以在模板视图中添加网站布局。但是通过添加可以让我们在网页控制器中使用一些功能:

如果在网页控制器中无需使用上述功能,则可省略website=True参数。但大多数网站QWeb模板需要使用website=True开启一些数据,比如底部公司信息,所以最好还是添加上。

传入QWeb运行上下文语言的网站数据由website/model/ir_ui_view.py文件中的_prepare_qcontext方法设定。

要在模板中添加网站的基本布局,应为QWeb/HTML包裹一个t-call=”website.layout”指令,如下所示:

t-call运行QWeb模板website.layout并向其传递XML内的tcall节点。website.layout设计用于渲染带有菜单、头部和底部的完整网页,交将传入的内容放在对应的主区域内。这样,我们的HelloWorld!示例内容就会显示在Odoo网站页面中了。

我们的网站页面可能需要一些其它的CSS或JavaScript资源。这方面的网页由website管理,因此需要一个方式来告诉它使用这些文件。我们将使用CSS来添加一个简单的删除线效果,创建library_website/static/src/css/library.css文件并添加如下内容:

很快我们就会使用text-strikeout这个新的样式类。当然,可以使用相似的方法来添加JavaScript资源。

既然我们已经过了一遍基础知识,就来一起实现借阅列表吧。我们需要使用/checkoutURL来显示借阅列表的网页。为此我们需要一个控制器方法来准备要展示的数据,以及一个QWeb模板来向用户进行展示。

在模块中添加library_website/controllers/main.py文件,代码如下:

回到我们的代码,它以request.render()方法收尾。和之前一样,我们传入了QWeb模板渲染的标识符,和模板运行用到的上下文字典。本例中我们向模板传入docs变量,该变量包含要渲染借阅记录的记录集。

QWeb模板使用数据文件来添加,我们可以使用library_website/views/checkout_template.xml文件并添加如下代码:

以上代码使用t-foreach指令来迭代docs记录集。我们使用了复选框input并在借阅完成时保持为已选状态。在HTML中,复选框是否被勾选取决于是否有checked属性。为此我们使用了t-att-NAME指定来根据表达式动态渲染checked属性。当表达式运行结果为None(或任意其它false值)时,QWeb会忽略该属性,本例用它就非常方便了。

在渲染任务名时,t-attf指令用于动态创建打开每个指定任务的明细表单的URL。我们使用一个特殊函数slug()来为每条记录生成易于阅读的URL。该链接目前尚无法使用,因为我们还没有创建对应的控制器。

在每条借阅记录上,我们还使用了t-att指令来在借阅为最终状态时应用text-strikeout样式。

借阅列表中的每一项都有一个相应明细页面的链接。我们就为这些链接实现一个控制器,以及实现一个QWeb模板来用于展示。说到这里应该已经很明朗了。

在library_website/controllers/main.py文件中添加如下方法:

注意这里路由使用了带有model(“library.checkout”)转换器的占位符,会映射到方法的doc变量中。它从URL中捕获借阅标识符,可以是简单的ID数值或链接别名,然后转换成相应的浏览记录对象。

对于QWeb模板,应在library_website/views/checkout_template.xml数据文件中添加如下代码:

这里值得一提的是使用了元素。和在后台中一样,它处理字段值的相应展示。比如,它正确地展示日期值和many-to-one值。

补充:controllers/__init__.py和__mainfest__.py中请自行添加控制器文件和数据文件的引用

读者现在应该对网站功能的基础有了不错的掌握。我们学习了如何使用网页控制器和QWeb模板来动态渲染网页。然后学习了如何使用website插件并使用它来创建我们自己页面。最后,我们介绍了网站表单插件来帮助我们来创建网页表单。这些都是创建网站功能的核心能技巧。

我们已经学习了Odoo主要构件的开发,是时候学习如何将Odoo服务部署到生产环境了。

THE END
1.图书馆素材图书馆图片图书馆素材图片下载熊猫办公为您找到400个图书馆素材图片,包括图书馆图片,图书馆素材,图书馆背景,图书馆模板源文件下载服务,包含PSD、PNG、JPG、AI、CDR等多种格式的素材,更多关于图书馆素材、图片、背景、矢量、UI、PS、免抠,艺术字、插画、配图等设计素材模板https://www.tukuppt.com/speciall/tushuguan.html
2.图书室平面图图片图书室平面图素材图书室平面图模板免费下载六图网为您提供26879张图书室平面图设计作品免费下载服务,您还可以找到图书室平面图图片、图书室平面图素材、图书室平面图模板等设计素材,我们为您提供图书室平面图图片下载,图书室平面图模板下载、图书室平面图素材下载等服务!https://m.16pic.com/sucai/8744278.html?from=singlemessage
3.图书馆网页界面图片免费下载图书馆网页界面素材千图网为您找到824张图书馆网页界面相关素材,千图网还提供图书馆网页界面图片,图书馆网页界面素材, 图书馆网页界面模板等免费下载服务,千图网是国内专业创意营销服务交易平台,一站式解决企业营销数字化、协同化,实现营销转化效果增长!https://www.58pic.com/tupian/tushuguanwangyejiemian.html
4.网页设计工具哪个好?BootstrapStudio网页设计工具分享您可以将设计的各个部分作为自定义组件提取出来,并准备好将它们放入您创建的任何设计中。您还可以将这些组件导出为文件并共享它们。 在线图书馆 如果您需要我们的库中不存在的组件,只需单击组件面板中的“ 联机”选项卡。在那里,您将找到社区构建和共享的数千个组件。您也可以上传自己的。 https://weibo.com/ttarticle/p/show?id=2309404766498974728551
5.图书馆书目检索系统总馆- 自科图书阅览室 (六楼西) 阅览 目录 收起 第1章 网页和网站概述 1.1 网页和网站简介 1.1.1 网页和网站基本概念 1.1.2 网页基本构成要素 1.1.3 网站页面构成 1.1.4 网站类型 1.1.5 浏览器概述 1.2 网站制作流程 1.3 网页设计原则 1.4 网页设计规范 1.4.1 配色原则 1.4.2 设计尺寸https://elib.nuist.edu.cn/space/searchDetailLocal/md6944ea0be28027ac3f48be750c455f9
6.www.xinhsen.com/aplpage12539.html尤其2024年的活动,主办方与泰安市青少年宫、驻泰各高校和泰安市天文协会等单位密切合作,结合“流动青少年宫”“流动科技馆”“科技大篷车”等活动,组织开展了“泰山公益大讲堂科普报告进校园、进社区”活动,行程几千里,举办科普报告和科普活动二十余场次,受众人数上万人,使之成为泰安市2024年广大少年儿童最期待的盛事http://www.xinhsen.com/aplpage12539.html
7.网页模板创世下载站免费游戏软件资源创世下载站为广大用户提供一手的游戏软件下载资源,每天更新最新的游戏软件,拥有最全的国内外下载资源,同时为大家提供精品推荐,下载排行,手机游戏等内容,做用户最贴心最信赖的下载平台。https://www.cssmoban.com/
8.内容数据范文12篇(全文)在斯隆基金会的支持下,2014年发布的DMPTool第二版采用开源软件框架,依靠用户社区支持,并以充分满足研究者、图书馆、基金会和院校等各方面的利益为宗旨[34]。通过新设计的管理界面,学院能够提供个性化的帮助信息、资源,以及针对特定学科的DMP模版文档。DMPTool创建了一个协同式的工作环境,允许多人对同一份DMP进行编辑、https://www.99xueshu.com/w/ikeye1u5qrlv.html
9.web.yjsuoj.com/nodenews/460509.shtml..男女日皮专题模板 99.28MB 59%好评7510人) 成人黄色视频在线免费观看 二次元超污没有衣服无遮无挡 柚子么最新版的黑人操逼视频吗 07.71MB 65图书馆的她直到论淊1-5 64.36MB 91%好评7524人) 91麻豆69天堂 女天体浴场图片高清 中文无码字慕在线观看 11.66MB 47%好评690人) 二人生猴子http://web.yjsuoj.com/nodenews/460509.shtml
10.DreamweaverCS6网页设计与应用(第5版)(微课版)数字图书馆9.1.3 管理模板 9.1.4 课堂案例—水果慕斯网页 9.2 库 9.2.1 创建库文件 9.2.2 向页面添加库项目 9.2.3 课堂案例—律师事务所网页 课堂练习—食谱大全网页 课后习题—精品沙发网页 第10 章 表单 10.1 表单的创建 10.1.1 创建表单 10.1.2 表单的属性 10.2 表单的使用 10.2.1 单行文本域 10.2.2 课堂案例https://www.dtdjzx.gov.cn/szlib/jykj/2817583.jhtml
11.四川轻化工大学图书馆网页访问方式有哪些?2020年11月1日起实施的供电分公司《安全生产红线管理规定》中规定,在明知确实存在危险或者已经违章,作业人员的人身安全和企业的财产安全没有保证,继续生产会发生严重后果的情况下,仍然不顾相关法律规定,强行命令或者胁迫下属冒险进行作业属于()https://www.shuashuati.com/ti/57e8a177990745658a5d1d52dea73053.html
12.Sitemap公司网站制作图书馆网页设计的审美意识 公司网站制作感官体验 公司网站制作用户体验5个层次模型 公司网站制作重复购买意向 公司网站制作MVVM传输过程中数据安全问题的解决方案 公司网站制作后端微服务的整体架构 公司网站制作基于Web应用的安全认识误区 公司网站制作边界防火墙防护 公司网站制作中小企业应用程序的设计模式 公司网https://www.phpweb.com.cn/sitemap.html
13.活动策划案模板(通用15篇)3、提供电脑维修与服务。在网络文化节期间,广大师生可以就网络知识、电脑维修、实用网站等问题提供服务。电脑维修与服务地址:4月13日、14日在图书馆门前,其余时间在软件学院孵化园。 4、“我的e家”——网页设计大赛 各学院以喜迎评估为中心,充分利用网络这一现代化的平台,充分展示新一代大学生的集体风貌,营造喜迎https://www.yuwenmi.com/fanwen/huodongcehua/3531313.html
14.基于HTML5的图书馆页面html图书馆管理系统设计结课作业,课程设计无处下手,网页要求的总数量太多?没有合适的模板?数据库,java,python,vue,html作业复杂工程量过大? 2、作品介绍 原生js实现的图书馆管理系统采用html,css,js技术来实现,符合所学知识体系,适用于常见的作业以及课程设计,欢迎大家来提问,交流学习。 https://blog.51cto.com/u_16099283/8762422
15.中文数字图书馆(精选六篇)中文数字图书馆 篇1 报刊的传统表现方式日益受到网络媒体等方式的冲击, 越来越多的读者被吸引到网络媒体上, 实现数字化报业是现阶段报业信息化目标。《中国报业“十一五”信息化建设规划》指出, 报业的数字化要以新闻内容为中心, 以数字网络为平台, 以多种媒体为载体。在数字报业的发展进程中, 给传统报业新闻内容https://www.360wenmi.com/f/cnkey285lkk2.html
16.素材中国www.sccnn.com素材CNN天猫模板名片卡片茶淘宝店招结婚代金券PPT下载中国地图 矢量图标画册封面企业画册相册模板卡通时尚商务新品上市 请柬城市网页祥云美女环保中国梦花边 设计师神器 stable diffusion拯救坏手教程 SD帮你生成金属立体字 Prompt all in one!提示词中文转英文、自动调权重的 SD WebUI 插件 http://sccnn.com/
17.创意在线(原我爱设计网)·第六届“包豪斯奖”国际设计大赛获奖名单揭晓 ·“医保邀您助力大运 共享幸福美好生活”抖音大赛火热来袭 ·20000元 淇滨区城市旅游宣传口号和主题歌曲征集 ·2000元 面向全社会红色故事有奖征文 ·5000元 青年生命科学论坛标志(LOGO)征集 ·5000元 怒江州脱贫攻坚纪实馆徽标征集 http://www.52design.com/
18.web.zhengshunboli.com/nodenews/434550.htm图书馆员第一季第01集在线观看_三联生活周刊 特大巨黑人吊性xxxxgay 《国产chinesehdxxxx中文》欧美电影在线观看 老妇恋上十八岁小伙 华丽的外出电影在线观看 在公司两个老外轮流照顾我 小芳今年十一岁爸爸今年43岁 强奸大乳揉大胸www网站 免费在线看黄色片 高H双龙入一个洞 把你的扇贝打开让我进去 4p三个http://web.zhengshunboli.com/nodenews/434550.htm
19.华夏书网站设计制作(华夏小说网站登录)网站设计今天给大家分享华夏书网站设计制作,其中也会对华夏小说网站登录的内容是什么进行解释。 简略信息一览: 1、怎么创作网站 2、制作网站有几种方法 3、怎么学习制作设计网页 4、网站建设一般怎么做的,什么样的流程? 5、如何制作图书馆网站设计方案 6、网站制作流程是什么? http://jhdcn.com/doc/1798.html
20.www.shengchuit.com/newxr94409166图书馆的女友动漫 第100章 xnxx 老师 猛男被狂c躁到高潮的图片 你的奶好大让我揉揉动态图 XDEVIOS app 婷婷色狠狠 成人试爱120秒在线视频 国产人与禽ZoZ0性伦交 gv视频在线观看 狂操xxx 日本亲子乱子伦ⅩXX50路 国产精品一色哟哟 台湾佬成人中文网222vvv 第十章 王雨纯最露的一次 夜夜操狠狠http://www.shengchuit.com/newxr94409166
21.图书页面图片智能精选图书页面图片,为您提供丰富的图书页面,图书页面图片,图书页面图片素材,图书页面图片大全,图书页面素材大全等。助力您创意设计图书页面图片灵感,充实饱满图书页面素材图片作品。欢迎您下载正版图片素材,授权图片有版权、商用无压力!https://699pic.com/image/tushuyemian.html
22.信息素养:效率提升与终身学习的新引擎超星尔雅学习通2、【判断题】绝大多数学术文献有数字化的形式,网络获取是学术文献的主要利用方式,学校图书馆一般会购买大量的学术文献数据库,但多数有权限限制。部分学术文献可以免费获取,期刊网站、免费数据库、OA文献检索系统是免费获取学术文献的主要渠道。 3.1导言 1、【判断题】垂直搜索是针对某一行业、某一领域、某一类型信息http://changchun.ehqc.cn/show/33_68.html