'TopLevelDocumentMetaclass'对象不可迭代

时间:2016-04-17 17:58:16

标签: python django mongodb mongoengine

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

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

'TopLevelDocumentMetaclass' object is not iterable.

我正在检查具有类似“对象不可迭代”的其他条目,但大多数是使用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) 

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

def admin(request):
    html = "<html><body>Proyecto de ejemplo</body></html>"
    return HttpResponse(html)

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

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

1 个答案:

答案 0 :(得分:0)

似乎'TopLevelDocumentMetaclass' object is not iterable.mongo-engine提出,同时它试图在django.contrib.admin中注册模型,因此mongo基本上对Django admin遇到了问题。

似乎这样注册模型现在可能会有所帮助:

admin.register(MyModel)