我遇到一个问题,即一组MongoEngine文档有两组用户。其中一个使用集希望复杂的辅助函数成为文档定义的一部分,另一个用户集无法安装这些函数所需的依赖项。
我想实现类似干净模型和脏模型的东西,用户可以自己选择,但实际的数据库文档定义只在一个地方维护。 E.g。
CleanModel / my_document.py
class MyDocument(Document):
my_field = StringField()
DirtyModel / my_document.py
from CleanModel import MyDocument as _MyDocument
class MyDocument(_MyDocument):
def some_function_that_relies_on_compiled_code():
pass
然后可以使用:
from DirtyModel import MyDocument
或
from CleanModel import MyDocument
使用完全相同的Mongo文档。我上面写的方式DirtyModel.MyDocument.objects()
无法获取使用CleanModel
创建的文档。
有关解决此问题的最佳方法的任何想法? (我不认为在这种情况下将辅助方法移到文档定义之外是可行的)