我正在使用 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/