Openerp 多个域中的域不限制选择
精简代码:Openerp 多个域中的域不限制选择,openerp,openerp-7,Openerp,Openerp 7,精简代码: class fnx_fs_folder(osv.Model): _name = 'fnx.fs.folder' _columns = { 'folder_type': fields.selection( [('virtual', 'Virtual'), ('shared', 'Shared')], 'Folder Type', ), { class fnx_fs
class fnx_fs_folder(osv.Model):
_name = 'fnx.fs.folder'
_columns = {
'folder_type': fields.selection(
[('virtual', 'Virtual'), ('shared', 'Shared')],
'Folder Type',
),
{
class fnx_fs_file(osv.Model):
_name = 'fnx.fs.file'
_columns = {
'folder_id': fields.many2one(
'fnx.fs.folder',
'Folder',
help='Folder to present document in.',
required=True,
ondelete='restrict',
domain="[('folder_type','=','virtual')]",
),
问题:即使文件夹id
字段附加了一个域
,表单视图仍然显示所有文件夹,而不仅仅是那些虚拟的
你知道问题是什么吗?原因是:
class fnx_fs_folder(osv.Model):
_name = 'fnx.fs.folder'
_columns = {
'folder_type': fields.selection(
[('virtual', 'Virtual'), ('shared', 'Shared')],
'Folder Type',
),
{
class fnx_fs_file(osv.Model):
_name = 'fnx.fs.file'
_columns = {
'folder_id': fields.many2one(
'fnx.fs.folder',
'Folder',
help='Folder to present document in.',
required=True,
ondelete='restrict',
domain="[('folder_type','=','virtual')]",
),
在xml
文件中,我有以下内容:
<field name="folder_id" widget="selection" ... />
解决方案:
class fnx_fs_folder(osv.Model):
_name = 'fnx.fs.folder'
_columns = {
'folder_type': fields.selection(
[('virtual', 'Virtual'), ('shared', 'Shared')],
'Folder Type',
),
{
class fnx_fs_file(osv.Model):
_name = 'fnx.fs.file'
_columns = {
'folder_id': fields.many2one(
'fnx.fs.folder',
'Folder',
help='Folder to present document in.',
required=True,
ondelete='restrict',
domain="[('folder_type','=','virtual')]",
),
删除小部件
部分,将小部件更改为manyOne
,或者将域
直接放在xml
文件中
注意:不幸的是,这表明在
.py
文件中添加域
是不强制的,不能依赖的。我认为您可以直接在xml字段中添加域,甚至可以使用小部件选择