如何解决odoo 14, 如何使我的模型可序列化?
我正在使用 odoo 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
解决方法
我找到了解决方案,但不合适。
在插件的每个模型中添加一个定义
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() 来获取可序列化的数据。上述方法是插件中的通用方法,一行修改也适用于其他插件。
我知道这不是解决问题的正确方法。如果你们有更好的解决方案,请评论。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。