title: Odoo field doesn't update when changed from javascript with an RPC call
body: <p>I want to be able to change the context of a one2many field (<code>work_unit</code>) programatically to modify the default value of one of its fields (<code>product_id</code>). </p>
  
  <p>Ideally I would like to change the o2m context directly from my widget, but I haven't had any success doing that, the view doesn't acknowledge any changes I make from javascript.</p>
  
  <p>Current approach: I have another field <code>selected_chapter</code> which I pass through context as the default for <code>work_unit.product_id</code>. This works fine: when I change <code>selected_chapter</code> manually, the o2m context picks up the new default for the field <code>product_id</code>.</p>
  
  <p>Now, I want to be able to modify <code>selected_chapter</code> programatically from a widget in javascript.</p>
  
  <p>I do this by calling a python method with an _rpc() call from my widget, and it works, but the view doesn't update <code>selected_chapter</code> until I save the record which defeats the purpose of the call.</p>
  
  <p>Widget code:</p>
  
  <pre><code>ListRenderer.include({
  ...
      _setSelectedChapter: function () {
          var self = this;
  
          this.trigger_up('mutexify', {
              action: function () {
                  return self._rpc({
                      model: 'sale.order',
                      method: 'set_selected_chapter',
  
                      args: [
                          [self.res_id]
                      ],
                      kwargs: {
                          chapter_id: self.filter.getSelected()
                      },
                  }).then(function (result) {
                      console.log("res", result);
                      self._render();
                  });
              },
          });
      },
  ...
  })
  </code></pre>
  
  <p>Model code:</p>
  
  <pre class="lang-py prettyprint-override"><code>    selected_chapter = fields.Many2one('product.product')
  
      @api.multi
      def set_selected_chapter(self, chapter_id):
          chapter = self.env['product.product'].browse(chapter_id)
  
          if not chapter.exists():
              return
  
          # I've also tried using self.update(), same results
          self.selected_chapter = chapter
  </code></pre>
  
  <p>View code:</p>
  
  <pre class="lang-xml prettyprint-override"><code>&lt;field name="work_unit" mode="tree,kanban" filter_field="product_id" context="{'default_product_id': selected_chapter}"&gt;
  </code></pre>