首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Flask和MongoEngine开发Tumblelog应用程序时出错

问使用Flask和MongoEngine开发Tumblelog应用程序时出错
EN

Stack Overflow用户
提问于 2015-04-03 23:12:17
回答 2查看 1.7K关注 0票数 11

我正在尝试遵循下面的教程,但当我运行manage.py时,我遇到了一些问题。任何帮助都可能是很大的帮助。

http://docs.mongodb.org/ecosystem/tutorial/write-a-tumblelog-application-with-flask-mongoengine/#id1

manage.py运行输出:

代码语言:javascript
复制
 (Tumbler)afiz Tumbler $ python manage.py 
Traceback (most recent call last):
  File "manage.py", line 6, in <module>
    from tumblelog import app
  File "/home/afiz/.virtualenvs/tumblelog/__init__.py", line 18, in <module>
    register_blueprints(app)
  File "/home/afiz/.virtualenvs/tumblelog/__init__.py", line 13, in register_blueprints
    from tumblelog.views import posts
  File "/home/afiz/.virtualenvs/tumblelog/views.py", line 5, in <module>
    from tumblelog.models import Post, Comment
  File "/home/afiz/.virtualenvs/tumblelog/models.py", line 6, in <module>
    class Post(db.DynamicDocument):
  File "/home/afiz/.virtualenvs/Tumbler/local/lib/python2.7/site-packages/mongoengine/base/metaclasses.py", line 361, in __new__
    meta['index_specs'] = new_class._build_index_specs(meta['indexes'])
  File "/home/afiz/.virtualenvs/Tumbler/local/lib/python2.7/site-packages/mongoengine/base/document.py", line 722, in _build_index_specs
    unique_indices = cls._unique_with_indexes()
  File "/home/afiz/.virtualenvs/Tumbler/local/lib/python2.7/site-packages/mongoengine/base/document.py", line 861, in _unique_with_indexes
    field.document_type != cls):
  File "/home/afiz/.virtualenvs/Tumbler/local/lib/python2.7/site-packages/mongoengine/fields.py", line 563, in document_type
    self.document_type_obj = get_document(self.document_type_obj)
  File "/home/afiz/.virtualenvs/Tumbler/local/lib/python2.7/site-packages/mongoengine/base/common.py", line 25, in get_document
    """.strip() % name)
mongoengine.errors.NotRegistered: `Comment` has not been registered in the document registry.
            Importing the document class automatically registers it, has it
            been imported?

manage.py文件:

代码语言:javascript
复制
    #set the path
import os, sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

from flask.ext.script import Manager, Server
from tumblelog import app

manager = Manager(app)

# Turn on debugger by default and reloader
manager.add_command("runserver", Server(
    use_debugger = True,
    use_reloader = True,
    host = '0.0.0.0')
)

if __name__ == "__main__":
    manager.run()
EN

回答 2

Stack Overflow用户

发布于 2015-04-07 02:32:53

我遇到了和你现在一样的问题。在我刚刚写的models.py文件中

类注释(db.EmbeddedDocument):

它的内容是先加后加

类发布(db.Document):

然后它就是内容。换句话说,我先写了评论类,然后写了帖子类,问题解决了;) :)干杯!!

票数 18
EN

Stack Overflow用户

发布于 2015-12-19 00:02:22

在Post中,当EmbeddedDocumentField被赋值给一个变量时,它需要预先注册。因此,在使用之前,一定要注册这样的字段,即注释。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29434854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档