python - 从现有 MongoDB 数据库创建 Django 模型

标签 python django mongodb django-rest-framework

我在 MongoDB 中有一些数据库,我想为其动态创建模型,因为数据库很多,我无法手动完成。问题:

  1. 我的 models.py 应该是什么样子? (inspectdb 是否适用于 mongodb 数据库或仅适用于基于 SQL 的数据库?)
  2. 由于数据库模型是动态创建的,因此如何编写序列化器类以返回动态字段?

提前致谢。

最佳答案

Django 支持面向传统关系数据库的对象关系映射器。而there are a number of mongodb packages for Django ,都不支持inspectdb构建您的模型。不管怎样, inspectdb is a kludge设计为一个过程,以帮助从遗留系统进行一次迁移,即您将构建您的 models.py文件一次并且从不运行inspectdb再次。这不是您想要做的,因为您似乎想要可以在运行时添加或更改的动态模型。

好的一面是,Django MongoDB Enginearbitrary embedded models within pre-defined models一些支持。但即便如此,他们似乎也不太支持它:

As you can see, generic embedded models add a lot of overhead that bloats up your data records. If you want to use them anyway, here’s how you’d do it...

总之,请尝试尽可能地构建您的模型,以真正满足您的要求。如果您在生产之前对模型一无所知,那么 Django 可能不是适合您的解决方案。

关于python - 从现有 MongoDB 数据库创建 Django 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28815381/

相关文章:

python - 如何从 Django 身份验证后端重定向

node.js - Redis 消息的异步操作

python - 如何根据结尾用数字替换列表中的字符串?

python - Twisted 在连接关闭之前不发送任何内容

python - django 网站为静态文件提供 404 错误

django - 如何修改 Django 管理员 url 中的应用程序名称?

python - Django 1.9 URLField 删除必要的 http ://prefix

javascript - 聊天应用程序如何为特定聊天生成 id?

c++ - TokuMX 中的部分索引

python - cygdb导入错误: No module named 'Cython'