odoo route 分析

Odoo运行机制(四)----URL路由 在openrep.http.Root.dispatch()中,通过ir_http = request.registry['ir.http']得到base/ir.ir_http try: with openerp.tools.mute_logger('openerp.sql_db'): ir_http = request.registry['ir.http'] excep 阅读详情

ODOO 13.0

1.订单路由发起 (  addons/sale-stock/sale_order.py ) [ sale.line -->  _action_launch_stock_rule() ]

2.路由选择( addons/stock/stock_rule.py ) [ procurement.group --> run() ]

         ------> { 378:  rule = self._get_rule(procurement.product_id, procurement.location_id, procurement.values)  选择执行路径    ._run_pull()   ._run_buy()  ._run_manufacture()   } 

3.选择执行(1)库移 (2)采购   (3) 制造

   (1)库移( addons/stock/stock_rule.py ) [ stock.rule --> _run_pull() ]    

          ---->[stock.move -->_action_confirm() ]{ 1033:  self.env['procurement.group'].run(procurement_requests)  闭环

                根据rule.procure_method = ‘make_to_stock' | 'mark_to_order'   来确定是完成库位移动(make_to_stock),还是继续                        下 一个规则(make_to_order) 选择。

                   }

    (2) 采购 ( addons/purchase_stock/stock_ruls.py )[ stock.rule  --> _run_buy() ]

    (3) 制造 ( addons/mrp/stock_rule.py )[ stock.rule -->  _run_manufacture() ]

 

 

 

外贸业务技术系统搭建:从WordPress独立站到CRM与邮件自动化 外贸业务在数字化浪潮中越来越依赖技术工具来提升效率和扩大市场。无论是独立站搭建、数据分析、客户关系管理还是自动化营销,掌握一些基础的技术能力已经成为外贸从业者的加分项。本文将从零开始,介绍如何利用常见的技术栈和开源工具,构建一套适合中小外贸团队使用的业务辅助系统。这套系统将覆盖从产品展示、询盘管理到邮件自动化的核心流程,并提供可运行的代码示例和配置说明。 适合阅读本文的读者包括:有一定计算机操作基础的外贸业务员、初创外贸公司负责人、希望技术转型的外贸从业者。不需要深厚的编程经验,但需要愿意动手配置和调试。 阅读详情

相关推荐

ODOO13 开发教程九 WEB控制器及接口请求

ODOO13 接口请求

厂长的博客 1517

Odoo接口开发

Odoo接口开发 Odoo是通过Controller来(控制器)发相应的接口的,路由是通过装饰有的方法定义的route() 先定义一个Controller类 在项目的文件夹controllers新建一个controller.py文件,一定一个Controller类,如下: 使用route()定义路由 路由:Controller odoo.http.route(route=None,**kw) 装饰器让所装饰的方法成为请求的处理器。该方法必须要是Controller子类的一部分.

Taony鲍永道的博客 1307

odoo15 owl main.js分析

看看odoo如何使用owl /** @odoo-module **/ import { startWebClient } from "./start"; import { WebClient } from "./webclient/webclient"; /** * This file starts the webclient. It is in its own file to allow its replacement * in enterprise. The enterprise versi

fqfq123456的专栏 963

ODOO路线设置注意事项

路线设置注意点

xtjie的专栏 1451

odoo15 标题栏自定义

this.title.setParts({ zopenerp: "齐天公司" });odoo15 标题栏自定义。

fqfq123456的专栏 559

odoo_routes

odoo_routes

odoo18开发手册--路由器(Router)

在 Odoo 的 Web 框架中,路由器(Router)是核心组件之一,它负责将客户端的 HTTP 请求映射到相应的控制器(Controller)方法上。当客户端发送请求时,Odoo 的路由器会根据定义的路由规则来匹配请求的 URL 和方法。的路由,可以直接返回 Python 字典,Odoo 会自动转换为 JSON 响应。为了组织和管理大量的路由,可以使用 Python 模块和类的结构,将路由分组。可以在路由的 URL 中定义动态参数,这些参数会被传递到控制器方法中。在控制器方法中,可以通过。

Xodoo开源市场 1612

Plant Simulation新手入门:从零开始搭建工厂布局仿真模型(附完整代码)

本文为Plant Simulation新手提供了一个从零开始搭建工厂布局仿真模型的完整实战教程。通过一个玩具工厂车间布局优化的具体案例,详细讲解了从数据准备、模型构建、核心逻辑编程到连接遗传算法进行自动优化的全流程,并附有完整代码示例,帮助读者快速掌握这一工业仿真软件的核心应用。

metal的博客 553

# Odoo丨Odoo框架源码研读一:前后端交互

这些Controller继承了Base模块中的Controller基类,并通过http.route装饰器的注解,将Controller中的方法标记为请求处理器,变成对外暴露的API接口,接收并处理http请求。可以看出:两者都具有处理异常、分发请求的功能。登陆时会把选择的数据库信息设置到Session中,以保证后面的请求,都会通过IrHttp映射器,分映射发请求到对应的方法。然后再根据功能的不同,划分成了多个控制器,从下图中每个controller的命名中,可以了解各自对应的功能模块。

qq_43337265的博客 1584

SATA硬件电路设计实战:从接口规范到高速布线技巧

本文深入探讨了SATA硬件电路设计的核心要点与实战技巧。从接口物理电气规范、AC耦合电容与阻抗控制等基础,到FPGA/SoC高速收发器选型配置,再到应对6Gbps高速信号的PCB布局布线艺术,系统性地解析了SATA电路设计中的关键挑战与解决方案,助力工程师规避常见陷阱,实现稳定可靠的存储接口设计。

tech5的博客 531

antv x6 沿边图标循环动画实现

2.使用transition给边设置动画,利用complte方法实现循环动画。实现效果,如下图,边上存在两个图标,要求图标延边一直循环动画。1.注册一个自定义边,边上定义两个图标,并设置其初始位置。

lingliu0824的博客 3366

解锁Odoo仓库管理终极效率:交叉分拣与智能补货完整指南

Odoo作为一款全面的开源企业资源规划(ERP)系统,其仓库管理模块提供了强大的交叉分拣(Cross-Docking)和智能补货功能,帮助企业实现库存周转效率提升30%以上,同时降低仓储成本。本文将详细介绍这两项高级功能的核心价值、实施步骤和最佳实践,带您快速掌握Odoo仓库管理的精髓。 ## 什么是交叉分拣?Odoo的创新解决方案 交叉分拣是一种先进的物流管理技术,通过直接将入库货物分拣后出

gitblog_00957的博客 808

西门子PLC实战:基于1200/1500的工业物联网MQTT通讯全解析

本文详细解析了如何在西门子S7-1200/1500系列PLC上实现工业物联网MQTT通讯。通过从硬件准备、网络配置到TIA Portal中MQTT_Client功能块的实战编程,手把手指导工程师打通车间数据桥梁,解决信息孤岛问题,实现PLC数据高效上云或设备间互联。

whisky的博客 1090

odoo17后台启动过程4——odoo.http.root

odoo17后台启动过程4——odoo.http.root

jiafeitutu的博客 713

1.47寸ST7789V3彩色TFT LCD嵌入式驱动详解

TFT LCD是嵌入式人机交互(HMI)的核心显示技术,其工作原理依赖于行列驱动、RGB像素寻址与伽马校正等模拟/数字协同机制。ST7789V3作为主流低功耗TFT控制器,支持SPI接口与16位RGB565数据格式,具备高兼容性与轻量级驱动优势。在资源受限的MCU平台(如ARM Cortex-M系列)上,结合RT-Thread设备驱动模型与QSPI硬件加速,可实现高效显存管理、Bresenham图形算法及GB2312中文字模渲染。典型应用场景涵盖便携设备状态屏、工业HMI面板与教育开发套件——本文以1.47

weixin_42599908的博客 124

IEC61850规约客户端软件开发实战(第二章)

本文介绍了基于IEC61850规约的客户端软件开发过程,重点阐述功能界面设计和服务端连接功能的实现。界面采用Qt框架设计,包含功能按钮区、数据模型展示区(使用QTreeWidget)和状态显示区。连接功能通过libiec61850开源库实现,详细说明了连接流程、句柄创建及状态管理的代码实现。测试结果表明系统能正确识别连接状态,并通过界面直观显示。文章为IEC61850规约软件开发提供了实用参考,下期将分享规约模型数据加载的实现过程。

半青年的博客 2858

flask/odoo/werkzeug的url mapping

参考:Werkzeug库——routing模块flask 源码解析:路由 odoo(8.0)源码 werkzeug(0.14.1)源码 flask(0.11.1)源码 一个web框架必须解决一个问题:当一个Request进入系统时,怎样去确定使用哪个函数或方法来处理。 Django自己处理这个问题。 Flask和Odoo(一个OpenERP)使用Werkzeug库(本身就是Flask的关联...

threegirl的专栏 566

AI自动化时代:一人公司的崛起与商业机会

AI技术正在重塑商业格局,催生"一人公司"创业新模式。这种轻资产、高效率的商业模式通过AI自动化运营,让个人创业者能以极低成本挑战传统企业。核心机会包括:1)AI自主公司替代人力密集型业务;2)为企业提供AI转型解决方案;3)利用AI工具实现个人创业。创业者需快速验证创意,聚焦人机协作,把握当前AI发展窗口期。未来,AI赋能的"一人公司"将成为商业新常态,带来更高的专业化和灵活性。抓住AI红利,学会人机协作,是个人创业成功的关键。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 520

Odoo MTO 和智能MTO 完全解读:从源码到实战

本文深入解析Odoo库存管理中的MTO(按订单生产)和智能MTO(MTS else MTO)机制。MTO适用于定制化产品和高价值低周转物品,而智能MTO则是一种混合策略,优先从库存取货,不足时触发采购/生产。文章详细介绍了三种采购方法的对比、核心数据库模型设计(Stock Rule)以及采购和生产模块的扩展实现。通过源码分析展示了MTO的工作流程,包括移动确认、规则匹配和执行等关键步骤。内容涵盖从理论概念到实际应用,帮助开发者全面掌握Odoo的采购补货策略。

清水欧度 Odoo ERP 722

KVM — 与 QEMU 和 Libvirt 的关系

目录目录 前言 KVM QEMU KVM 与 QEMU qemu-kvm Libvirt Libvirt 在 OpenStack 中的应用前言如果是刚开始接触虚拟机技术的话, 对上述的概念肯定会有所混淆, 傻傻的分不清. 尤其在看虚拟化技术文档时导致理解能力下降, 所以在开始学习虚拟化技术之前对这些概念有一个整体的认识和清晰的理解, 就显得很有必要了.KVMKVM(Kernel-basedVirtu

烟云的计算 5737

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ODOO longpoll解析

odoo bus

u011377622的博客 1045

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

odoo17后台启动过程5——Ir.http

odoo17后台启动过程5——Ir.http

jiafeitutu的博客 677

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Odoo报表追踪字段技术解析与实战应用

在企业级ERP系统中,字段变更追踪是保障数据完整性和审计合规性的关键技术。通过mail.thread模块的追踪机制,系统能够自动记录指定字段的历史变更,包括变更内容、操作人员和时间戳等关键信息。这种机制基于消息子系统实现,通过mail.message和mail.tracking.value模型的协同工作,构建了完整的审计追踪链条。在Odoo开发实践中,报表追踪功能广泛应用于财务单据、库存调整等需要严格审计的业务场景。通过ORM查询和数据处理技巧,开发者可以高效提取追踪数据并整合到自定义报表中。同时,批量查询

tyygming的专栏 418

Odoo ERP销售与采购智能关联:MTO配置与自动化实战

企业资源规划(ERP)系统中的销售与采购协同是供应链管理的核心环节。其基本原理是通过业务流程自动化,将销售需求实时转化为采购指令。这种自动化机制的技术价值在于显著提升订单处理效率,减少人工干预错误,优化库存周转。在实际应用中,按订单采购(MTO)模式特别适合贸易公司和定制化生产场景,能够实现零库存的精准供应。Odoo ERP通过路由规则和采购组等核心组件,构建了销售套件与请购模块的智能关联。本文以Odoo 16为例,详细解析如何配置产品属性和采购策略,实现销售订单确认后自动触发采购流程的完整解决方案。

weixin_34246551的博客 458

Flutter中实现Hero Page Route效果

基于Kafka+ElasticSearch+MongoDB+Redis+XXL-Job日志分析系统(学习)配置即权限:从传统开源 RBAC 框架到 SPARK 的六层数据护盾,告别改权限就要改代码的魔咒。c++&MFC 用boost.asio库写的串口功能,包含发送、异步接收、打开、重连、关闭功能。Windows下NVM保姆级指南:安装、切换版本、指定路径+淘宝镜像配置,一次搞定!第2集:技术选型的智慧:Flask vs FastAPI,GLM-4 vs GPT。

slngX_it341的博客 440

低代码与AI代理在供应链分析中的实践应用

低代码开发平台通过可视化拖拽方式降低技术门槛,结合AI代理实现智能决策,正在重塑企业级应用开发范式。其核心原理是将传统编码逻辑转化为可配置节点,通过工作流引擎驱动执行。这种技术组合特别适合供应链分析场景,能够快速响应业务变化,实现从数据采集、智能分析到决策执行的端到端自动化。以n8n为代表的工具支持与ERP系统深度集成,配合Claude等AI模型处理供应商风险评估、库存预警等典型需求。实践表明,合理运用流模式与批处理优化,可使万级数据处理效率提升50%以上,同时保持系统可维护性。

weixin_30654419的博客 299
上一篇: 系统无法在消息文件中为 Application 找到消息号为 0x2378 的消息文本。
下一篇: ODOO 产品变体太强大了
xtjie
博客等级 码龄19年 52粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值