Python 2.7 Odoo域滤波器MANYONE
我有3个目标:Python 2.7 Odoo域滤波器MANYONE,python-2.7,openerp,odoo-9,Python 2.7,Openerp,Odoo 9,我有3个目标: class PurchaseRequest(models.Model): _name = 'purchase.request' purchase_request_line = fields.One2many('purchase.request.line', 'purchase_request_id', copy=True) supply_conditions_status = fields.One2many('supply.conditions', 'p
class PurchaseRequest(models.Model):
_name = 'purchase.request'
purchase_request_line = fields.One2many('purchase.request.line', 'purchase_request_id', copy=True)
supply_conditions_status = fields.One2many('supply.conditions', 'purchase_id', string='Order',copy=True)
及
及
使用域,我只想筛选这些名称字段(多个字段)值,这些值是在purchase.request表单purchase\u request\u line字段中写入和保存的。因为现在我可以看到数据库中保存的所有值
<openerp>
<data>
<record model="ir.ui.view" id="view_purchase_request_doc">
<field name="name">purchase.request.doc</field>
<field name="model">purchase.request</field>
<field name="arch" type="xml">
<form string="Purchase Request">
<field name="state" widget="statusbar" statusbar_visible="draft,to_approve_first,approved,rejected,canceled" statusbar_colors="{"approved":"green"}"/>
</header>
<sheet>
<field name="purchase_request_line" attrs="{'readonly': [('state','not in', ('draft'))]}">
<tree string="Purchase Order Lines" editable="bottom">
<field name="name"/>
<field name="quantity"/>
</tree>
</field>
<notebook>
<page string="Conditions" attrs="{'invisible': [('state','in', ('draft', 'to_approve_first'))]}">
<field name="supply_conditions_status">
<tree string="Purchase Order Lines">
<field name="name" domain="[('???', '???', '???')]"/>
<field name="name" options="{'no_create': True}" domain="[('name', '=', 'product_id')]"/>
purchase.request.doc
购买请求
我将在这里尝试想象:
我想在购买条件product name Many2中设置一个字段,我可以过滤并只看到两个项目:item1和item2。我有点理解。
你能发布你所有的3个型号代码吗?。
或者再解释一下
但我对你有一点想法
所以。。。您需要在*.py侧创建函数
前
或者我理解你的另一个。如果需要在键入多个字段时返回所需的结果
前
我有点明白。
你能发布你所有的3个型号代码吗?。
或者再解释一下
但我对你有一点想法
所以。。。您需要在*.py侧创建函数
前
或者我理解你的另一个。如果需要在键入多个字段时返回所需的结果
前
我不明白你的问题。请详细说明……我更新了我的问题,请检查我不明白你的问题。请详细说明……我更新了我的问题,请检查。我更新了我的问题,请看。但我看你理解得对。我喜欢1的例子,但我不认为这是可能的。。。我需要在supply.conditions名称字段(表单视图中的产品)中,我只能在名称字段中选择item1、item2(如图所示),我只需要获得这些在活动purchase.request模型中写入的purchase.request.line值。以您的方式,我找不到活动购买。请求模型idI更新了我的问题,请查看。但我看你理解得对。我喜欢1的例子,但我不认为这是可能的。。。我需要在supply.conditions名称字段(表单视图中的产品)中,我只能在名称字段中选择item1、item2(如图所示),我只需要获得这些在活动purchase.request模型中写入的purchase.request.line值。以您的方式,我找不到活动purchase.request型号id
class PurchaseRequestLine(models.Model):
_name = 'purchase.request.line
purchase_request_id = fields.Many2one('purchase.request', 'Purchase request')
<openerp>
<data>
<record model="ir.ui.view" id="view_purchase_request_doc">
<field name="name">purchase.request.doc</field>
<field name="model">purchase.request</field>
<field name="arch" type="xml">
<form string="Purchase Request">
<field name="state" widget="statusbar" statusbar_visible="draft,to_approve_first,approved,rejected,canceled" statusbar_colors="{"approved":"green"}"/>
</header>
<sheet>
<field name="purchase_request_line" attrs="{'readonly': [('state','not in', ('draft'))]}">
<tree string="Purchase Order Lines" editable="bottom">
<field name="name"/>
<field name="quantity"/>
</tree>
</field>
<notebook>
<page string="Conditions" attrs="{'invisible': [('state','in', ('draft', 'to_approve_first'))]}">
<field name="supply_conditions_status">
<tree string="Purchase Order Lines">
<field name="name" domain="[('???', '???', '???')]"/>
<field name="name" options="{'no_create': True}" domain="[('name', '=', 'product_id')]"/>
class PurchaseRequestLine(models.Model):
_name = 'purchase.request.line
purchase_request_id = fields.Many2one('purchase.request', 'Purchase request', domain=_getfilter)
@api.model
def _getfilter(self):
return [('purchase_request_id', '=', self.env['purchase.request'].search([('name','=',???)]).name)]
@api.model
def name_search(self, name, args=None, operator='ilike', limit=100):
args = args or []
recs = self.browse()
if name:
recs = self.search(['|', ('purchase_request_id', 'ilike', name), ('name', 'ilike', name), ] + args, limit=limit)
if not recs:
recs = self.search(['|', ('purchase_request_id', operator, name), ('name', operator, name), ] + args, limit=limit)
return recs.name_get()