2017-12-21 41 views
0

2つのフィールドの間の依存関係を作成しようとしています。 statusフィールドとuser_idフィールドです。私は多くの州でこの問題を抱えています。問題が確認されると、フィールドAssigned toが表示されます。問題を誰かに割り当てると、状態はConfirmedからAssignedに自動的に変更されます。だから私は、このPythonコード作成:Odoo attributeError: 'bool'オブジェクトに 'get'属性がありません

class ProjectIssue(models.Model): 
    _name = "project.issue" 
    _description = "Project Issue" 
    _inherit = "project.issue" 

    state = fields.Selection([('new', 'New'), 
          ('feedback', 'Feedback'), 
          ('acknowledged', 'Acknowledged'), 
          ('confirmed', 'Confirmed'), 
          ('assigned', 'Assigned'), 
          ('testing', 'Testing'), 
          ('resolved', 'Resolved'), 
          ('closed', 'Closed'), 
          ], string='Issue Status', default='new') 

    def action_back_to_new(self): 
     return self.write({'state': 'new'}) 
    def action_upgrade_to_feedback(self): 
     return self.write({'state': 'feedback'}) 
    def action_back_to_feedback(self): 
     return self.write({'state':'feedback'}) 
    def action_acknowledge(self): 
     return self.write({'state':'acknowledged'}) 
    def action_confirm(self): 
     return self.write({'state':'confirmed'}) 

    @api.onchange('user_id') 
    def action_upgrade_to_assigned(self): 
     return self.write({'state':'assigned'}) 

をそして、これはxmlコードです:私はこのコードを実行するとuser_idを変更すると

<record id="project_issue_form_view_2" model="ir.ui.view"> 
      <field name="name">project.issue.form</field> 
      <field name="model">project.issue</field> 
      <field name="inherit_id" ref="project_issue.project_issue_form_view"/> 
      <field name="arch" type="xml"> 
      <field name="stage_id" position="replace"> 
       <button name="action_confirm" string="Confirm" type="object" states="acknowledged" class="btn-primary"/> 
       <button name="action_back_to_feedback" string="Back to Feedback" type="object" states="acknowledged" class="btn-primary"/> 
       <button name="action_back_to_new" string="Back to new" type="object" states="feedback" class="btn-primary"/> 
       <button name="action_acknowledge" string="Acknowledge" type="object" states="feedback" class="btn-primary"/> 
       <button name="action_upgrade_to_feedback" string="Upgrade to feedback" type="object" states="new" class="btn-primary"/> 
       <field name="state" widget="statusbar"/> 
      </field> 
      <field name="priority" position="replace"> 
       <field name="ipriority"/> 
      </field> 
      <field name="user_id" position="replace"> 
       <field name="user_id" attrs="{'invisible': [('state', 'in', ['new', 'feedback', 'acknowledged'])]}"/> 
      </field> 
      </field> 
    </record> 
    </field> 

このエラーが表示されます:

 File "C:\Users\PC\git\odoo\odoo-10.0\odoo\http.py", line 935, in __call__ 
return self.method(*args, **kw) 
    File "C:\Users\PC\git\odoo\odoo-10.0\odoo\http.py", line 506, in response_wrap 
response = f(*args, **kw) 
    File "C:\Users\PC\git\odoo\odoo-10.0\addons\web\controllers\main.py", line 885, in call_kw 
return self._call_kw(model, method, args, kwargs) 
    File "C:\Users\PC\git\odoo\odoo-10.0\addons\web\controllers\main.py", line 877, in _call_kw 
return call_kw(request.env[model], method, args, kwargs) 
    File "C:\Users\PC\git\odoo\odoo-10.0\odoo\api.py", line 689, in call_kw 
return call_kw_multi(method, model, args, kwargs) 
    File "C:\Users\PC\git\odoo\odoo-10.0\odoo\api.py", line 680, in call_kw_multi 
result = method(recs, *args, **kwargs) 
    File "C:\Users\PC\git\odoo\odoo-10.0\odoo\models.py", line 5494, in onchange 
record._onchange_eval(name, field_onchange[name], result) 
    File "C:\Users\PC\git\odoo\odoo-10.0\odoo\models.py", line 5393, in _onchange_eval 
process(method_res) 
    File "C:\Users\PC\git\odoo\odoo-10.0\odoo\models.py", line 5370, in process 
if res.get('value'): 
    AttributeError: 'bool' object has no attribute 'get' 

をいただき、ありがとうございますあなたの助け。

+0

onchangeメソッドからreturn文を削除します。それでおしまい。 –

+0

@VikiChavada私はreturn文を削除しました。もうエラーはなくなりましたが、user_idフィールドが見えるようになりました。ヘッダーにはボタンもデフォルト状態もありません。 – Tessnim

+0

そのドメインを追加したために表示されました。 ['new'、 'feedback'、 'acknowledge']の状態ではこのフィールドが見えないようにしたいが、あなたが割り当てられた状態を設定するメソッドでは、そう、それは目に見える。 –

答えて

0

defの戻り値を削除する必要があります。action_upgrade_to_assigned

関連する問題