在Django中存储SpiffWorkflow状态

时间:2014-09-08 09:13:28

标签: python json django workflow

我想将SpiffWorkflow与Django结合使用,但显然SpiffWorkflow只能将其状态序列化为JSON和XML:

https://github.com/knipknap/SpiffWorkflow/tree/master/SpiffWorkflow/storage

SpiffWorkflow允许运行工作流的序列化,因此我可以将其基本上存储为某个字节流(在文件系统或Django的数据库中)。但这剥夺了Django的所有优点。

是否有某种方法可以将字典或反序列化的JSON结构映射到Django可以用作常规Django对象(由Django ORM存储在数据库中)的对象上?为SpiffWorkflow /其工作流程的JSON表示编写这样的Django后端会不会很复杂?我问,因为我基本上没有Django的经验。

1 个答案:

答案 0 :(得分:1)

您可以使用NoSQL作为数据库后端而不是RDBMS。我建议使用MongoDB,因为它使用JSON表示法来存储数据,并且可以使用mongodb-engine在Django项目中使用。 MongoDB是无模式的(读MongoDB website article about being schemaless)。您可以使用您想要的任何结构存储数据,并稍后更改即时

Django还支持其他NoSQL后端,如Redis,Elasticsearch等,您可以查看它们以找到最适合您的特殊需求。