'TopLevelDocumentMetaclass'对象不可迭代

Raú*_*aúl 8 python django mongodb mongoengine

我是django世界的新手,我尝试用一​​些例子将它与mongodb一起使用.要连接到mongo,我使用的是mongoengine 0.9.0.我也在使用virtualenv.

目前我有非常基本的东西,我能够运行服务器,但当我尝试可视化网页时,我收到此错误:

'TopLevelDocumentMetaclass' object is not iterable.
Run Code Online (Sandbox Code Playgroud)

我正在检查具有类似"对象不可迭代"的其他条目,但大多数是使用models.py的用户模型,我的是在sites.py中,目前我不想修改它直到我知道我在做什么:S

这是我的安装包:

  • Django的== 1.5.1
  • Django的快捷键== 1.5
  • djangotoolbox == 1.8.0
  • mongoengine == 0.9.0
  • pymongo == 2.5.2

我的models.py看起来像这样

from mongoengine import *
from mongoengine import connect
connect('mydatabase')

class Restaurant(Document):
    name = StringField(max_length=200) 
Run Code Online (Sandbox Code Playgroud)

我在views.py文件中唯一的视图就是这个

def admin(request):
    html = "<html><body>Proyecto de ejemplo</body></html>"
    return HttpResponse(html)
Run Code Online (Sandbox Code Playgroud)

如果我不在我的Models.py中使用mongoengine而是使用django.db中的模型它可以正常工作,所以我认为问题的原因应该是使用mongoengine.

有谁知道如何解决这个问题?

aas*_*pro 0

它似乎是在尝试注册模型时'TopLevelDocumentMetaclass' object is not iterable.引发的,所以基本上 mongo 在 Django 管理方面遇到了问题。mongo-enginedjango.contrib.admin

看起来像这样注册模型现在可能会有所帮助:

admin.register(MyModel)
Run Code Online (Sandbox Code Playgroud)