flask - Mongoengine:TypeError:__init__()得到了一个意外的关键字参数

标签 flask mongoengine flask-mongoengine

我正在使用 flask-mongoengine 扩展,并且我有一个这样的用户类:

class User(db.Document, UserMixin):     
    email = db.StringField(max_length=120, required=True, unique=True)
    password_hash = db.StringField(max_length=80, required=True)   
    active = db.BooleanField()
    fb_id = db.StringField(max_length=120, required=False)

    def __init__(self, email, password, fb_id=None, active=True):           
        hashp = md5.md5(password).hexdigest()        
        self.email=email
        self.password_hash=hashp
        self.fb_id=fb_id
        self.active=active

但是当我做一个简单的获取时: User.objects.get(email = email)

我得到错误:

TypeError: __init__() 得到了一个意外的关键字参数“password_hash”

但我在我的 init 中设置了 password_hash。令人惊讶的是,如果我删除整个 __init__ 并通过 args 传递所有内容,它就可以正常工作。

所以我发现我在 __init__ 中做错了什么,也许是由于文档父类(super class)?我非常坚持这一点,非常感谢您的帮助。

最佳答案

尝试降级 pymongo。

pip install pymongo==2.8

无论如何我都遇到了这个错误,我修复它的唯一方法是将 pymongo 从 3.0 降级到 2.8。

关于flask - Mongoengine:TypeError:__init__()得到了一个意外的关键字参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16981268/

相关文章:

python - MongoEngine 返回空列表

python - 将非线程 SQLAlchemy 代码与 Flask-SQLAlchemy 集成

python - 如何将cookie从flask设置为reactjs

python - MongoEngine 和处理 "UserWarning: MongoClient opened before fork. Create MongoClient with connect=False, or create client after forking"

django - MongoDB - MongoEngine - 如何遵循 "the other side"的引用?

python - 升级后无法连接到 MongoDB?

python - 从源安装 setuptools "No module named numbers"错误

python - IO 错误 - Flask-mail 和带有代理的运行服务器

mongodb - 快速写入 MongoDB 控制台,缓慢写入 ReplSet

python - AWS + MongoDB : How to connect to mongo server on AWS linux instance?