“TopLevelDocumentMetaclass”对象不可迭代

'TopLevelDocumentMetaclass' object is not iterable

提问人:Raúl 提问时间:4/18/2016 最后编辑:JérômeRaúl 更新时间:5/23/2020 访问量:1901

问:

我对 django 世界非常陌生,我尝试做一些示例来将其与 mongodb 一起使用。要连接到 mongo,我使用的是 mongoengine 0.9.0。我也在使用 virtualenv。

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

'TopLevelDocumentMetaclass' object is not iterable.

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

以下是我的安装包:

  • 姜戈==1.5.1
  • django-shortcuts==1.5
  • django工具箱==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。

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

蟒蛇 django mongodb mongoengine

评论

0赞 Andrey Shipilov 5/24/2019
您在 2019 年使用 1.5 有什么原因吗?
0赞 Renier 4/8/2020
你找到解决这个问题的方法了吗?

答:

0赞 aasmpro 5/23/2020 #1

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

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

admin.register(MyModel)