Skip to Content
Menu
This question has been flagged
1 Reply
3347 Views

Hi,

I'm creating a new Widget to update some fields inside a Model. I've created a new API route in the controller and when I try to update the data of my model this one is not changing. I have a computed method to change it in visualization, how can I set correctly the data and keep the field's visualization with the computed method? 

Someone can help me?

Thanks


Model:

# -*- coding: utf-8 -*-
from odoo import _, api, fields, models


class EasyConnectorUser(models.Model):
    _name = "easy_connector.user"
    _description = "EasyConnector user"

    # Defining fields
    login = fields.Char(
        required=True, string='EasyConnector user login'
    )
    password = fields.Char(
        compute='', inverse='',
        invisible=True, copy=False,
        string='EasyConnector user password'
    )
    token = fields.Text(string='Authorization token', compute='_compute_token')

    def _compute_token(self):
        for user in self:
            user.token = 'Has tokenif user.token else 'No token'



Controller:

class AuthController(http.Controller):
    @http.route('/easy_connector/auth', type='json', auth="public")
    def auth(self, **kw):
        users = request.env['easy_connector.user'].search([])
        for user in users:
            user.token = 'Test'

        return {
            'force_refresh': True,
        }
Avatar
Discard
Best Answer

Hi,

Please give @api.depends for the compute function. And also give store=True when defining the field token.Then the calculation depended on some other field(s) of the same table or some other table. Then it is possible update the model via controller.

Regards

Avatar
Discard
Related Posts Replies Views Activity
3
Aug 23
3379
1
Jul 22
7371
1
Dec 24
2743
0
Jun 21
1254
1
Oct 20
4402