如何在版本8中加载javascript文件?在版本7中,您可以像这样js在manifesto文件(__openerp__.py)中显示位置:
'js': ['static/src/js/file.js'],
现在它不起作用.
例如,我使用以下代码在我的模块中创建了js文件:
openerp.calendar_service = function(instance) {
var _t = instance.web._t,
_lt = instance.web._lt,
QWeb = instance.web.qweb;
instance.calendar_service = {};
console.log('TEST')
};
Run Code Online (Sandbox Code Playgroud)
但是使用调试器,我没有看到它TEST被打印出来.如果我在某些源js文件(在其他模块中)添加此类打印,它将打印正常.那么如何加载我的js文件?
我在 ubuntu 服务器上使用 Odoo,我想跳过演示数据,我尝试了以下方法,但它对我没有帮助。
--without-demo=True
Run Code Online (Sandbox Code Playgroud)
然后我删除了__openerp__.pyCRM 模块中的演示 xml 文件,但客户字段中仍有演示数据。
有没有其他潜在的方法可以跳过演示数据。
任何输入将不胜感激。
我想使用 sql 查询选择不同的值,因为我需要 id 作为整数。
我的代码是:
@api.onchange('qty')
def _on_change_name(self):
logging.warning(self.id)
Run Code Online (Sandbox Code Playgroud)
打印的id是<openerp.models.NewId object at 0x7fc37d880490>
我怎样才能从中得到整数id?
Odoo模块总是有两个文件__init__.py和__openerp__.py.
dhl_module
|-- controller
|-- models
|-- views
|-- __init__.py
|-- __openerp__.py
Run Code Online (Sandbox Code Playgroud)
该文件__openerp__.py包含一个dict而不将其分配给名称.该dict存储有关模块的信息.它看起来像这样:
# -*- coding: utf-8 -*-
{
'name': "DHL connector",
# used as subtitle
'summary': "Configuration for DHL connector ",
'description': """ DHL connector
""",
'author': "me",
'website': "mysite.com",
'category': 'Technical Settings',
# Change the version every release for apps.
'version': '0.0.1',
# any module necessary for this one to work correctly
'depends': [],
# always loaded
'data': ['views/dhl.xml', ],
# only …Run Code Online (Sandbox Code Playgroud) 我想在灰色区域中更改表单视图的标题.这应该是从SHIP00001更改为其他名称或字段.那可能吗?你可以在这张图片中看到
在odoo中,我想更改默认菜单项的操作窗口。由于我无法在默认模块中进行更改,因此我创建了其他菜单项,但它同时显示了默认菜单项和新菜单项。我也尝试过继承操作窗口,但它对我不起作用。
Java 脚本文件在 odoo 9 的浏览器中的调试模式下不显示
你好,我尝试在浏览器中debuy我自己的javascript,但无法在浏览器的js源列表中找到它。我之前在firefox和chrome浏览器中都以调试模式查看过所有js文件。不知道出了什么问题。请查找我的环境详细信息。
操作系统:Windows 8 IDE:Eclipse Mars、Eclipse Neon、Pycharm Community Edition 2017.2.1 Odoo 构建版本:所有版本 尝试过的浏览器:Firefox、Chrome
仅供参考,我正在从 odoo 源构建。感谢您的帮助。
让我们用一个简单的One2many举个例子:假设一个人可以养几个宠物,但是一个宠物只能拥有一个主人:
class Pet(models.Model):
_name='pet'
owner_id = fields.Many2one(
comodel_name='person',
string='Owner',
)
active = fields.Boolean(
string='Active',
default=True,
)
class Person(models.Model):
_name='person'
pet_ids = fields.One2many(
comodel_name='pet',
inverse_name='owner_id',
string='Pets',
)
Run Code Online (Sandbox Code Playgroud)
现在,您有一个人(Id:1)拥有两个宠物(Id:56,57),但是其中一个宠物是不活跃的(Id:57的宠物)。如果打印person.pet_ids,Odoo将返回pet(56,)。不活动的记录不包括在那里。打印时有什么办法显示它们person.pets_ids吗?
到目前为止,我做到了:
pets = self.env['pet'].search([
('owner_id', '=', person.id),
'|',
('active', '=', True),
('active', '=', False),
])
Run Code Online (Sandbox Code Playgroud)
但是我想知道是否有更好的方法。
代码
我有以下瞬态模型:
class MoveLotsManager(models.TransientModel):
_name = 'move.lots.manager'
product_lots_available = fields.One2many(
comodel_name='move.product.lot.available',
inverse_name='manager_id',
string='Available lots',
)
class MoveProductLotAvailable(models.TransientModel):
_name = 'move.product.lot.available'
manager_id = fields.Many2one(
comodel_name='move.lots.manager',
string='Lots Manager',
)
name = fields.Char(
string='Name',
)
@api.one
@api.onchange('name')
def onchange_name(self):
# LOGGER 4
_logger.info(self.manager_id)
# LOGGER 5
_logger.info(self.manager_id.id)
Run Code Online (Sandbox Code Playgroud)
如您所见,它们都是通过1:N关系连接的。我以这种方式打开瞬态模型的视图:
@api.multi
def open_move_lots_manager_wizard(self):
self.ensure_one()
wizard_id = self.env.ref(
'my_module.view_move_lots_manager_wizard').id
default_lots = [(
(0, 0, {
'name': 'My lot',
})
)]
lots_manager = self.env['move.lots.manager'].create({
'product_lots_available': default_lots,
})
# LOGGER 1
_logger.info(lots_manager)
# LOGGER 2
_logger.info(lots_manager.id)
# LOGGER …Run Code Online (Sandbox Code Playgroud)