2017-09-20 4 views
1

フィルタしたいname_idフィールドごとにフィールドします。しようとしていた:odoo many2oneフィールドフィルタbyドメイン

NAME_ID = fields.Many2one( 'my.model.line'、文字列= '製品'、ドメイン= [( 'purchase_request_id'、 '='、MODEL_ID)])

が、その後I

File "/opt/odoo/openerp/fields.py", line 343, in __getattr__ 
    return self._attrs[name] 
    File "/opt/odoo/openerp/fields.py", line 343, in __getattr__ 
    return self._attrs[name] 
    File "/opt/odoo/openerp/fields.py", line 343, in __getattr__ 
    return self._attrs[name] 
    File "/opt/odoo/openerp/fields.py", line 343, in __getattr__ 
    return self._attrs[name] 
    File "/opt/odoo/openerp/fields.py", line 343, in __getattr__ 
    return self._attrs[name] 
RuntimeError: maximum recursion depth exceeded 

my_model.xml

<record model="ir.ui.view" id="view_my_model_form"> 
    <field name="name">my.model.form</field> 
    <field name="model">my.model</field> 
    <field name="arch" type="xml"> 
     <form string="My Model"> 
      <header> 
       <field name="my_model_line"> 
        <tree> 
         field name="name"/> 
         </tree> 
       </field> 
     <notebook> 
      <page> 
       <field name="supply_conditions_status"> 
        <tree string="My model Lines"> 
         <field name="name_id"/> 
        </tree> 

モデル::

class SupplyConditions(models.Model): 
    _name = 'supply.conditions' 
    name_id = fields.Many2one('my.model.line', string='Product') 
    model_id = fields.Many2one('my.model') 

class MyModelLine(models.Model): 
    _name = 'my.model.line' 
    name = fields.Char('Name') 
    my_model_id = fields.Many2one('my.model') 

class MyModel(models.Model): 
    _name = 'my.model' 
    title = fields.Char('Title') 
    my_model_line = fields.One2many('my.model.line', 'my_model_id') 
    supply_conditions_status = fields.One2many('supply.conditions', 'model_id') 
エラーが発生しました10

UPDATE:

私は意味: ドメイン= [( 'my_model_id'、 '='、MODEL_ID)])

答えて

0

あなたがフィールドとしてpurchase_request_idたドメインを適用しているが、ないフィールドがありませんモデル 'my.model.line'にpurchase_request_idという名前を付けます。このコードを試してみてください:

class MyModel(models.Model): 
    _name = 'my.model' 
    title = fields.Char('Title') 
    my_model_line = fields.One2many('my.model.line', 'my_model_id') 
    supply_conditions_status = fields.One2many('supply.conditions', 'model_id') 

class MyModelLine(models.Model): 
    _name = 'my.model.line' 
    name = fields.Char('Name') 
    my_model_id = fields.Many2one('my.model', ondelete='cascade') 
    purchase_request_id = fields.Many2one('your_purchase_request_model') 

class SupplyConditions(models.Model): 
    _name = 'supply.conditions' 
    name_id = fields.Many2one('my.model.line', string='Product', domain=[('purchase_request_id', '=', model_id)]) 
    model_id = fields.Many2one('my.model') 

これで問題は解決します。良い一日を。

+0

Woops。私は意味:ドメイン= [( 'my_model_id'、 '='、model_id)])し、エラーが来る... – fueggit

関連する問題