odoo - Odoo 8 - 批量编辑和字段域
问题描述
我在一个自定义插件中有一个模型,我正在开发一个我想限制到特定域的字段。我的模型看起来像:
from openerp.osv import fields, osv
class MyModel(osv.Model):
_name = 'mymodel'
_columns = {
'ui_code_version': fields.many2one(
comodel_name='robots.software.versions',
string='UI Code Version',
domain="[('project', '=', 'ui')]"
)
}
当直接编辑我的模型实例时,似乎domain
正确地将我的选择限制为ui项目版本,这很棒。
但是,如果我设置Mass Editing模块以便我可以编辑 的多个实例的uimymodel
版本,则不会应用域过滤器,并且我可能会错误地从其他项目中选择软件版本。
在数据库中四处寻找,看起来域甚至没有存储在那里。
MyOdooDatabase> SELECT name, domain FROM ir_model_fields \
WHERE model = 'mymodel' AND name = 'ui_code_version'
+-----------------------+----------+
| name | domain |
|-----------------------+----------|
| ui_code_version | <null> |
+-----------------------+----------+
同样,域不在此字段的 Settings->Technical->Database Structure->Fields 条目中:
问:如何让批量编辑模块服从我的字段域,以便我只能选择 ui 项目版本?该域是否需要存储在数据库中?如果是这样,怎么做?
编辑:根据Bhavesh Odedra的要求,以下是robots.software.versions
and的定义robots.software.projects
:
class RobotsSoftwareVersions(osv.Model):
_name = 'robots.software.versions'
_description = 'Software Version'
_columns = {
'name': fields.char('Name'),
'project': fields.many2one('robots.software.projects', 'Project'),
'version': fields.char('Version', help='The git tag or hash (e.g. 3.2.1)')
}
class RobotsSoftwareProjects(osv.Model):
_name = 'robots.software.projects'
_columns = {
'name': fields.char('Name'),
'upstream': fields.char('Upstream'),
}
解决方案
域应该是
domain="[('project', '=', 'ui')]"
您可以参考https://odedrabhavesh.blogspot.com/2015/09/domain-in-odoo.html进行未来的开发。
更新
在对象中添加
project_name
字段robots.software.versions
并使其与project
like相关'project_name': fields.related('project', 'name', type='char', store=True)
现在更新您的域,例如
domain=[('project_name', '=', 'ui')]
推荐阅读
- python - 如何在 matplotlib 中使用 xy 数据设置 quiverkey 长度缩放?
- mysql - 将 SQL 数据库更新为 Wordpress 日期格式
- javascript - 一个属性的javascript数组映射
- javascript - 如何将(Trust Pilot)自定义脚本添加到 AMP 页面
- javascript - reactjs中如何遍历key-value
- graphviz - graphviz:“相同”分组框周围的虚线框
- excel - 如何修复 Excel 中的 Range.Value 分配问题
- c# - ASP.NET Core 中的流利验证
- python - Openpyxl - 设置数字格式代码
- docker - “volume”参数在 docker 中是如何工作的?