python - 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
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() 来获取可序列化的数据。上述方法是插件中的通用方法,一行修改也可以用于其他插件。
我知道这不是解决问题的正确方法。如果你们有更好的解决方案,请发表评论。
推荐阅读
- javascript - 如何检测在 Javascript for 循环中单击了哪个按钮?
- python - 将图像保存为文件中的 numpy 数组并使用 Python 从文件中将其作为图像加载回来
- symfony - Symfony4如何调用公用文件夹中的文件?
- javascript - 从 JSON 数据分组日期和时间绘制条形和线的交互式图形组合
- r - 使用第二个(单个)反斜杠/R 表情符号(Unicode)拆分字符串,不带修饰符
- sql - 运行查询时出错 查询执行期间超出资源
- python - pymongo ChangeStream 无法处理的年份解决方法
- c# - Unity - 我如何实现波数?
- ios - 本地化:Domain=com.alamofire.error.serialization.response Code=-1011 “请求失败:未找到 (404)
- c++ - 设计模式 - 在另一个类中组成的数据类型的过滤视图