Перейти к содержимому
Меню
Чтобы взаимодействовать с сообществом, необходимо зарегистрироваться.
Этот вопрос был отмечен
1 Ответить
4590 Представления

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,
        }
Аватар
Отменить
Лучший ответ

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

Аватар
Отменить
Related Posts Ответы Просмотры Активность
3
авг. 23
5256
1
июл. 22
9510
1
дек. 24
4287
0
июн. 21
2336
1
окт. 20
5477