odoo 14,我如何使我的模型可序列化?

2024-09-27 00:13:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是奥多14。我创建了一个自定义插件。在我的插件中有一个模型如下

class Merchant(models.Model):
_name = "ecommece_advance.merchant"

name        = fields.Char( required=True)
email       = fields.Char(required=True)
address     = fields.Char()
website     = fields.Char()
latitude    = fields.Float(digits=(3,6))
longitude   = fields.Float(digits=(3,6))
contact     = fields.Char(required=True)
alternative_contact = fields.Char()
market_id  = fields.Many2one('ecommece_advance.market',
    ondelete='cascade', string="Market", required=True)

我创建了一个外部使用的web控制器,并返回一个商户数据列表。 Odoo说我的模型不能从控制器返回。我没有办法序列化我的模型。请帮帮我。提前谢谢

不接受以下样品溶液--- *通过创建JSON从模型返回数据 *获取数据并在控制器中创建JSON


Tags: 数据name模型插件truefieldsrequiredcontact
1条回答
网友
1楼 · 发布于 2024-09-27 00:13:42

我找到了一个解决办法,但并不合适

在每个插件模型中添加一个def

    def getJson(self):
    data = {}

    for field in self._model_fields :
        if str(self[field]).startswith('ecommece_advance') :
            data[field] = self[field].getJson()
        elif isinstance(self[field], models.Model) :
            break
        elif isinstance(self[field], fields.datetime):
            data[field] = str(self[field])
        else:
            data[field] = self[field]
    return data

现在,您可以从控制器调用searchModel.getJson()来获取可序列化的数据。上述方法是插件中的通用方法,一行修改也可以用于其他插件

我知道这不是解决问题的正确方法。如果你们有更好的解决方案,请评论

相关问题 更多 >

    热门问题