【发布时间】:2020-05-07 15:22:36
【问题描述】:
有人可以帮我解决这个 python 循环导入吗?
文件measurement_schema.py 导入elementary_process_schema。并且文件elementary_process_schema.py 导入measurement_schema。
我需要在每个声明的类的最后一行使用引用的类。例如:measurement_schema.py的最后一行:elementary_processes = fields.Nested(ElementaryProcessSchema, many=True)
完整代码:
measurement_schema.py
from marshmallow import fields
from api import ma
from api.model.schema.elementary_process_schema import ElementaryProcessSchema
class MeasurementSchema(ma.Schema):
id = fields.Int(dump_only=True)
name = fields.Str()
description = fields.Str()
created_on = fields.Str()
elementary_processes = fields.Nested(ElementaryProcessSchema, many=True)
elementary_process_schema.py
from marshmallow import fields
from api import ma
from api.model.schema.ar_rl_schema import ARRLSchema
from api.model.schema.data_item_schema import DataItemSchema
from api.model.schema.elementary_process_type_schema import ElementaryProcessTypeSchema
from api.model.schema.measurement_schema import MeasurementSchema
class ElementaryProcessSchema(ma.Schema):
id = fields.Int(dump_only=True)
name = fields.Str()
operation = fields.Str()
reference = fields.Str()
created_on = fields.Str()
elementary_process_type = fields.Nested(ElementaryProcessTypeSchema)
data_itens = fields.Nested(DataItemSchema, many=True)
AR_RLs = fields.Nested(ARRLSchema, many=True)
measurement = fields.Nested(MeasurementSchema)
我知道有很多关于这个问题的话题。但是,我无法解决我的特定循环引用问题。
【问题讨论】:
-
您是否探索过在这里实现工厂模式,这是一个示例 mehulkar.com/blog/2017/04/… - 在您的课程中,您可能需要在 MeasurementSchema 中注入 ElementaryProcessSchema,反之亦然。
-
谢谢侯赛因。我用了smassey的小费。它很简单,效果很好
标签: python marshmallow