我是Django的新手,Mongodb看起来很酷,而且我有一些
问题!我正在使用Django nonrel和Django Mongodb引擎.
我希望我不会犯太多错误:)
1)是Django用户认证系统和Django会话
系统工作正常?因为我在allbuttonspressed.com上看到了
身份验证和管理界面存在问题
部分与第三方书面认证后端让我思考
django身份验证系统不能与mongodb一起使用:
You can only edit users in the admin interface if you add
“djangotoolbox” to your INSTALLED_APPS. Otherwise you’ll get an
exception about an unsupported query which requires JOINs.
Florian Hahn has also written an authentication backend which provides
permission support on non-relational backends. You should use that
backend if you want to use Django’s permission system.
2)如果身份验证系统正常,我该如何添加字段
用户模型?我在Django文档上看到了实现这一目标的方法
要去的是用OnetoOnefield定义一个模型到用户模型
(“user = models.OneToOneField(User)”)并定义我们的其他字段
想要那个模特.我认为它必须是SQL的正确方法
数据库.但是像Nolong这样的mongodb对我来说似乎不对,如果
我没弄错,它创建了一个新的集合并放入每个文档
用于将文档链接到用户文档的用户字段
集合(完全像外键).这似乎不是一个
NoSQL方式(嗯,这只是我的感觉,但因为我只是一个
初学者我可能错了,不要犹豫纠正我).有没有
建议直接向用户模型添加字段的方法?
3)当在Django中使用Model时,它将所有字段放入
文件,即使它们是空的吧?这不是浪费空间
如果它们是空的,写下文档中的很多字段名称?
4)这个问题更多的是关于Mongodb本身而不是引擎,但我会
不管怎么说,你可能会得到答案:多少空间呢
采取索引集合中的字段?
没想到我会这么写,我希望你们有些人有
勇气读我!
提前致谢,
Nolhian
只有部分答案,因为我不使用MongoDB.
>我在Google AppEngine项目中使用django-nonrel.我正在使用其他自定义应用程序,如“djangotoolbox”,以及GAE的一些后端.管理面板和标准Django身份验证工作得非常好.我怀疑MongoDB是一样的(就像你提供的报价中提到的那样)
>你是对的.标准方法绝对适用于关系数据库,但对NoSQL数据库可能无效或无效.典型的情况是将数据复制到另一个表,因此您不必执行JOIN.我认为您可以简单地将User模型子类化并将您的字段添加到自定义模型(docs).