Попытка построить встроенную модель, которая будет встраивать свою собственную модель в два свойства. Отправляемый json может выглядеть следующим образом (хотя может иметь много дополнительных встроенных уровней):
{
"_id": "z00ty6767",
"name": "Inverted Data Search",
"params": {
"command_options": ""
},
"sequence": {
"action": "search",
"params": {
"variable": "RTX",
"var_type": "Inventory"
"step": "1"
},
"true": {
"action": "review",
"params": {
"value": "EE175",
"step": "2"
},
"true": {
"action": "sort",
"params": {
"step": "3",
"variable": "pack_date",
"condition": "oreder_by",
"value": "oldest"
},
"true": {
"action": "end"
},
"false": {
"action": "end"
}
},
"false": {
"action": "end"
}
},
"false": {
"action": "end"
}
}
}
Попытка построить модели таким способом, но при этом появляется ошибка, что SequenceModel не существует.
from db import db
class ParameterModel(db.EmbeddedDocument):
variable = db.StringField()
var_type = db.StringField()
condition = db.StringField()
value = db.StringField()
step = db.StringField()
class SequenceModel(db.EmbeddedDocument):
action = db.StringField()
params = db.EmbeddedDocumentField(ParameterModel)
true = db.EmbeddedDocumentField(SequenceModel)
false = db.EmbeddedDocumentField(SequenceModel)
class Sequences(db.Document):
_id = db.StringField()
name = db.StringField()
params = db.EmbeddedDocumentField(ParameterModel)
sequence = db.EmbeddedDocumentField(SequenceModel)
Я попытался использовать GenericEmbedddedDocumentField для полей true и false и смог успешно выполнить GET для существующих документов, но получил KeyError: _cls при попытке выполнить POST.
I успешно строил явные модели для каждого шага, но надеялся, что есть лучший программный способ решить эту проблему. Спасибо!