表单内树视图中的值未出现 Odoo 11

问题描述

我刚开始使用 odoo 11。我在 FOLDER 表单中使用树,用于显示 one2many 字段的数据。当我单击 SYNC 按钮时,将创建树视图中的数据。该按钮将触发外部 api get 方法,然后根据 JSON 值创建适当的数据。当我单击按钮时,它触发了该方法并成功进入了数据库,但是当我查看树视图时,没有任何值。请帮忙,我被卡住了。

蟒蛇

class GetFolder(models.Model):
    _name = 'get_folders'
     name_folder = fields.Text(string='Name')
     email_blacklist = fields.Integer(string='Email Blacklist',store=True)
     email_subscribers = fields.Integer(string='Email Subscribers',store=True)
     unique_subscribers = fields.Integer(string='Unique Subscribers',store=True)
     email_count = fields.Integer(string='Email',store=True)
     foldersId = fields.Integer(string='FolderId',store=True)
     list_folder_ids = fields.One2many(comodel_name='get_lists',string='Folder',inverse_name='folder_lists',help="")

     @api.multi
     def get_lists_request(self):
     res = self.env['get_lists'].search([('foldersId','=',self.foldersId)])
     for record in res:
        record.ensure_one()
        list_url = ""
        querystring = {"limit":"50","offset":"0","sort":"desc"}
        headers = {
            "Accept": "application/json","api-key": ""
        }

        list_response = requests.request("GET",list_url,headers=headers,params=querystring)
        print(list_response.text)
        list_loads = simplejson.loads(list_response.text)
        _logger.warning(list_loads)
        for list_load in list_loads.get("lists"):
            names = list_load['name']
            ids = list_load['id']
            blacklist = list_load['totalBlacklisted']
            subscribe = list_load['totalSubscribers']
            self.env['get_lists'].sudo().create({
                    'id': self.id,'name': names,'email_subscribers': subscribe,'email_blacklist': blacklist,'listId' : ids,'foldersId' : self.foldersId,})

class GetList(models.Model):
    _name = "get_lists"

    name = fields.Char(string="Name")
    email_subscribers = fields.Integer(string="Total Subscribers",store=True)
    email_blacklist = fields.Integer(string="Total Blacklist",store=True)
    folder_lists = fields.Many2one(comodel_name='get_folders',string='Lists')
    foldersId = fields.Integer(string="Folder Id",related="folder_lists.foldersId",store=True)
    listId = fields.Integer(string="List Id",store=True)
    

XML

   <notebook>
     <page string="Lists">
        <tr style="margin-bottom:100px;">
           <td><button type="object" name="get_lists_request" string="Synch" class="oe_inline oe_button btn-success"/></td>
        </tr>
        <field name="list_folder_ids"/>
     </page>
   </notebook>

编辑版本

record = self.env['get_folders'].search([('id',self.id)])
for recx in record:
    self.env['get_lists'].create({
                        'id': self.id,'foldersId': recx.id,})

是的,它成功了。抱歉这么晚才回复。经过多次尝试和修复。我真的查看了您的代码并找到了错误。其实很简单。我忘了输入 many2one 值。你真的让我开心。谢谢。

解决方法

您需要在创建 primary_key 对象数据时传递 get_lists

代码

self.env['get_lists'].sudo().create({
                'id': self.id,'name': names,'email_subscribers': subscribe,'email_blacklist': blacklist,'listId' : ids,'foldersId' : self.foldersId,'folder_lists': self and self.id // set the ref
        })

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...