odoo 前后台 + ajax 调用

Odoo销售订单模块中添加自定义按钮以下载选择的发货单 首先,需要在销售订单的列表视图中添加一个自定义按钮。这可以通过修改或创建一个新的XML模板文件来实现。在模块的views目录下创建一个新的XML文件,例如。在该文件中,导入必要的元素,并扩展销售订单的列表视图,添加自定义按钮: 阅读详情

话不多说直接上代码(直接用改改自己需要的逻辑即可)最后别忘记在__manifest__.py加权限

xml部分:

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<template id="register_page" >
    <head>
        <meta http-equiv="Access-Control-Allow-Origin" content="*" />
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.8/vue.min.js"></script>
        <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
        <script src="https://cdn.bootcss.com/jquery/3.0.0/jquery.min.js"></script>
        <script type="text/javascript" src="/academy/static/src/js/test.js"></script>
        <script src="http://code.jquery.com/jquery-latest.js"></script>
        <style>
         .int{ height: 30px; text-align: left; width: 600px; }
         label{ width: 200px; margin-left: 20px; }
         .high{ color: red; }
         .msg{ font-size: 13px; }
         .onError{ color: red; }
         .onSuccess{ color: green; }
        </style>
    </head>
    <center><h3>用户信息页面</h3></center>
    <form name="myform">
            <div class="int">
                <label for="name">姓名:</label>
                <input type="text" id="name" name="name" class="required" />
            </div>
            <div class="int">
                <label for="mobile">电话:</label>
                <input type="number" id="mobile" name="mobile" class="required" />
            </div>
            <div class="int">
                <label for="street">住址:</label>
                <input type="text" id="street" name="street" />
            </div>
            <div class="int">
                <input type="button" value="1测试1" onclick="sadly()"  style="margin-left: 70px;" ></input>
            </div>
    </form>

    <script src="http://www.oschina.net/js/2012/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script type="text/javascript"><![CDATA[

        function jsonpCallback(res){//回调 jsonp 固定格式我也不知道为啥就这么写好用
            //自己进行逻辑处理
            console.log(res);
            alert(res.msg)
            }

        function sadly(){
            var name = myform.name.value;
            var mobile = myform.mobile.value;
            var street = myform.street.value;
            //console.log(1);
            $.ajax({
                type:"get",
                url:"http://localhost:8069/inserttest",
                dataType:"script",//是个坑不是jsonp很奇怪
                data:{
                    name:name,
                    phone:phone,
                    address:address,
                },
                jsonp:"callback",
                jsonpCallback:"success_jsonpCallback",

                success: function(data){
                //alert("成功")
                //console.log(data);
                },
                error: function(data){
                alert("失败")
                console.log(data)
                
                }
            });
        }
        ]]>
    </script>
</template>
</odoo>

controllers部分

# -*- coding: utf-8 -*-
from odoo import http
from odoo.http import request
import time
import json
from odoo import api
from odoo.tools import misc

class Academy(http.Controller):
# 创建接口测试
    @http.route('/inserttest', auth='public',methods=['POST','GET'])
    def inserttest(self,jsonp ='jsonpCallback',**args):#注意jsonp格式
        name= args.get('name')#接受前端的参数
        phone = args.get('phone')
        address =args.get('address')
        print(name)
        print(phone)
        print(address)
        Teachers = http.request.env['academy.teachers']  # [数据库]
        if name:
            product_count = Teachers.sudo().search_count([('name', '=', name)])#查询有没有此人
            # print(product_count)
            if (product_count)>=1:
                res = {'msg': '用户已存在!', 'msg_code': 2001}
            else:
                Teachers.sudo().create({'name': name,'phone':phone,'address':address} )
                res = {'msg': '注册成功!', 'msg_code': 0}
        else:
            res = {'msg': '必填字段未填,请检查接口文档!', 'msg_code': 1001}
        return_value = (jsonp +"("+ json.dumps(res,ensure_ascii=False)+")")#json固定格式
        return return_value

 

odoo的api接口 在controllers层添加urls,可以自定义返回数据格式,json,字符串,html页面、重定向url等 对内api 内部访问,只能内部通过rpc来访问 import json from odoo import http, fields from odoo.http import request class GetPartner(http.Controller): @http.route('/api/partner', auth='user') def partner(self, 阅读详情

相关推荐

odoo的tree视图导入后面增加一个按钮

在tree视图“导入”按钮后面增加一个按钮 js文件 在模块下面增加一个js文件,test_button.js 内容如下: odoo.define('my_first_app.course.tree.button', function (require) { "use strict"; var ajax = require('web.ajax'); let ListController = require('web.ListController'); ListControlle

LDC,公众号【轻松学编程】 1286

在外部应用中使用接口方式调用Odoo函数

首先,在应用中定义insert2odoo()函数。 函数中声明了调用odoo所需的url/db/password等参数,uid=2表示是admin帐户。 try语句中,是真正的“使用接口方式”。可以看到包含了odoo中的model名称,被调用函数等。 随后在main()中调用了insert2odoo()函数,并赋予了参数。 import traceback from xmlrpc import client as xmlrpclib def insert2odoo(message): u

figosoar的专栏 876

微信DAT图片解密全攻略:一键转换JPG/PNG/GIF

本文详细解析了微信电脑版中DAT图片的加密原理与存储路径,并提供了从定位文件到使用专业工具进行一键解密的完整操作指南。通过简单的步骤,用户可将加密的DAT文件无损还原为JPG、PNG或GIF格式,有效解决无法直接查看聊天图片的难题,同时兼顾了隐私清理与磁盘空间管理。

hill8的博客 1362

odoo javascript参考(四)

odoo javascript参考(四)

weixin_44565926的博客 503

(论文速读)PTV3: 更简单、更快速、更强大的3D点云处理新突破

该论文提出PointTransformerV3(PTv3),通过简化设计实现3D点云处理的效率突破。该研究摒弃复杂注意力机制,转而采用点云序列化和补丁注意力等高效方法,将感受野从16点扩展到1024点,在保持高精度的同时实现3倍速度提升和10倍内存优化。PTv3在超过20个室内外场景任务中取得SOTA结果,ScanNet语义分割达79.4%mIoU,Waymo检测提升3.3%APH。核心创新包括四种空间填充曲线序列化模式和xCPE位置编码,为3D感知的工业应用提供了高效解决方案。

LJ1147517021的博客 1376

Raptor码(一):2007RFC5053标准编解码学习

RFC 5053 标准

a_beatiful_knife的博客 3491

python Ajax向后台(odoo)接口传递一个数组,如何处理

<html> <head> <script src="https://cdn.staticfile.org/jquery/2.0.0/jquery.min.js"></script> <title>xxxxxxxxxxx</title> </head> <body> &lt...

厂长的博客 832

SEED-VIG数据集实战:5步搞定驾驶员疲劳检测模型(附Python代码)

本文提供了一份基于SEED-VIG数据集的驾驶员疲劳检测模型实战指南。通过五个核心步骤——数据准备、特征提取、模型训练、优化评估及部署思路,详细讲解了如何利用脑电信号构建分类器,并附有完整的Python代码,帮助开发者快速上手这一智能座舱关键技术。

w1x2y3的博客 262

odoo 自定义controller及postman调用

odoo自定义controller以及postman如何调用

weixin_45039855的博客 509

AI测试入门:如何测试AI对话模型/智能体?「详细介绍」

作为测试人员,我们需要掌握特定的技能和方法来有效地测试这些复杂的AI对话模型和智能体。传统的软件测试方法在这里可能不再完全适用,我们需要开发新的测试策略和技术来应对AI系统的独特特性。在这篇文章中,我们将深入探讨如何测试AI对话模型和智能体。

blues_C的博客 6855

基于Spring Boot 3 + Vue 3 + UniApp的全栈高校社团管理小程序设计与实现

requestMatchers("/api/auth/**", "/doc.html", "/webjars/**", "/v3/api-docs/**").permitAll() // 公开接口。<u-search placeholder="搜索活动" v-model="searchKeyword" @search="loadActivities" :showAction="false"></u-search>R.success("活动创建成功") : R.error("活动创建失败");

2201_76125393的博客 368

odoo使用ajax请求,odoo 前后台 + ajax 调用

话不多说直接上代码(直接用改改自己需要的逻辑即可)最后别忘记在__manifest__.py加权限xml部分:.int{ height: 30px; text-align: left; width: 600px; }label{ width: 200px; margin-left: 20px; }.high{ color: red; }.msg{ font-size: 13px; }.onErro...

weixin_31101725的博客 689

Cost-effective Attention Reuse across Multi-turn Conversations in Large Language Model Serving

通过多回合对话与人类互动是大型语言模型(LLM)的一个基本特征。然而,由于需要重复计算历史token的密钥值(KV)缓存,用于执行多回合会话的现有LLM服务引擎效率低下,从而导致高服务成本。为了解决这个问题,本文提出了AttentionStore,这是一种新的注意力机制,可以在多回合对话中重用KV缓存(即注意力重用),显著降低重复计算开销。AttentionStore维护一个分层的KV缓存系统,该系统利用经济高效的内存/存储介质为所有请求保存KV缓存。

c_cpp_csharp的专栏 394

Odoo中引入Echarts实现数据可视化

本文实现将echarts引入到odoo中,绑定客户端动作,最终实现数据可视化。效果类似于在Odoo中有数据大屏的展示效果,并且可以动态从数据库获取数据。

weijiaの博客 3500

六、Tool 工具系统:让大模型拥有“手脚“

我问你一个问题:大模型能不能告诉你"北京今天天气怎么样"?能——它能用非常流畅的中文回答你不能——它不知道这个答案因为它没有联网能力,也没有实时数据。它可能会自信地编一个"今天晴,25 度"给你——这就是幻觉。问题出在哪?大模型是一个"推理引擎",不是一个"执行引擎"。它知道天气 API 怎么调用,但不能真的发出 HTTP 请求。它知道 Python 代码怎么写,但不能真的运行代码。它知道数学公式,但做不了精确的大数计算。Tool 工具系统解决的,就是这个"最后一公里"问题。

牛肉胡辣汤 157

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ODOO通过JS写入模型的两种方法

问题来源ODOO在Qweb中是可以使用JQuery的,所以可以通过前端异步请求后端方法来使用。AJAX方法既然可以使用JQuery,那就可以用$.ajax()方法来请求Controller里的方法,后端控制器的例子如下:class Controller(http.Controller): @http.route("/model/add",type='http',auth="publi

Wilson的博客 7573

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

在 Odoo 中添加自定义dashboard页面

在使用Odoo开发时,有时会有这样的业务需求: 希望可以设计一个dashboard,以图表可视化的方式来展现相关数据。 其实Odoo内置的模块中很多页面都有实现了类似的功能,然而可惜的是官方对于这部分的教程Customizing the web client还是基于Odoo 8.0写的,已经过时很久了。 虽然网上也有像Ruter大神写的相关基础教程,但是为了照顾读者,一些比较深入的功能并没有提及到,本教程会在基于Ruter教程上,示范一些更深入的功能点。 一旦完成本教程,你的页面看起来会是这样子的

羽落花开的博客 2888

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

JSON-RPC 调用Odoo 微信公众号、小程序、钉钉开发

ajax 调用 json-rpc ,参考代码: function jsonRpc(url, fct_name, params, settings) { return genericJsonRpc(fct_name, params, function(data) { return $.ajax(url, _.extend({}, settings, { ...

清水欧度 Odoo ERP 3178

Odoo 前端开发框架技术全面解析

Odoo前端开发技术指南 摘要:本文深入解析Odoo前端技术栈、OWL框架、视图自定义及性能优化策略。Odoo前端采用JavaScript/OWL框架结合XML/QWeb模板,实现与后端深度集成的响应式界面。现代OWL框架引入组件化开发模式,通过useState管理状态,提供类似React的声明式编程体验。视图自定义可通过XML定义和继承,复杂交互则需开发OWL组件。性能优化重点关注RPC调用优化、DOM操作精简、资源打包管理及调试技巧。最佳实践包括合理拆分组件、精细化状态管理、减少模板计算复杂度等。

conquer_qgw的博客 1877

odoo12 tree视图 自定义导入

odoo12 创建时遇到了一个需求, 通过Excel导入数据, 其中涉及的表模型有三个,原本的导入不知道能否支持, 就专门写了一个导入功能,可能实现方式很low,但也满足了功能,具体实现如下>>> 原本的导入按钮隐藏 安装隐藏导入按钮第三方模块:https://apps.odoo.com/apps/modules/10.0/display_import_button/ tree视图当中加入 import=‘false’<tree import='false'></tre

不期而遇、的博客 1018

odoo16自动打印报表

odoo自动打印

weixin_42973469的博客 1176

odoo导出excel表格

tree上导入表格 添加按钮 在static/src中编写xml模板 <templates id="bicon_base_goods_button" xml:space="preserve"> <t t-extend="ListView.buttons"> <t t-jquery="div.o_list_buttons" t-operation="append"&gt...

weixin_45117014的博客 1465

开源免费企业平台Odoo的简介和应用

随着企业信息化不断地深入和应用,无论大中小型企业,通过信息化甚至数智化,不断提高企业内部的运营效率,人财物达到最优配置,从而不断增加企业核心竞争力,有些行业领先的企业,要求管理层必须懂IT,一岗双责,否则就无法胜任现有管理岗位,全员信息化或数字化。特别对于制造企业来说,业务随着外部市场的变化也随时需要更新升级系统,以符合最新的企业管理模式,从系统开发角度来说,如何随需而变并进行快速响应用户的需求,这个是一个现实又重要的课题,通过Odoo可以很好地支持业务随时变化的需求,由于Odoo配置功能很...

weixin_40650231的博客 6232

odoo 仪表盘 大屏设计模块cus_dashboard支持odoo16 15 14 13 12

odoo 仪表盘 大屏设计模块cus_dashboard支持odoo16 15 14 13 12,支持柱状图,折线图,雷达图,圆环图,饼图,支持文本区块自定义,数据源自定义,显示样式定义

zxltwins的博客 1162

Odoo简介

Odoo最初的名字为TinyERP,08年5月之后称之为改名OpenERP之后又改为Odoo是一套全球开源的ERP/CRM系统。Odoo 是用于经营公司很好的开源管理软件。 Odoo是一系列开源商业应用套件,此套件可满足公司的大部分应用需求,例如,企业基本的进销存、采购、销售、MRP生产制造、预算管理、WMS仓库库存管理、企业招聘、员工合同、休假、午餐管理、...

mihaoyun.com的专栏 3287

浅谈odoo 后台与前端文件(附件)的存储与下载

odoo 后台与前端文件(附件)存储与下载实现 笔记太多了很乱,想想还是写博客的好,慢慢更 当然了,前提是你已经配好了odoo开发环境 一、odoo后台界面实现附件的上传和下载 1)、在应用中搜索下图组件,安装 成功后,随便打开一个form视图就能看到上面多了一个附件按钮,点击即可上传 2)、在你的模型中加入一个关联到这个附件...

ddez46767的博客 1597
上一篇: odoo如何安装wkhtmltopdf并且与后期的依赖配置
下一篇: odoo 自带增删改查
Da_Lian_
博客等级 码龄9年 37粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值