我尝试使用Flask,SQLAlchemy和Marshmallow在Python 3.4中构建REST API应用程序。
在我的模型中,我有一个User
类,与MailAddress
类有一对多的关系。
如果我运行GET
请求,我设法从数据库中读取数据,并且数据正确地作为JSON字符串返回。
相反,如果我使用某个POST
的{{1}}对象的JSON序列化运行User
请求,则会收到此错误:
MailAddresses
我尝试在我的模型类中添加 File "X:\test\...\site-packages\sqlalchemy\orm\collections.py", line 785, in bulk_replace
constants = existing_idset.intersection(values or ())
File "X:\test\...\site-packages\sqlalchemy\util\_collections.py", line 612, in intersection
result._members.update(self._working_set(members).intersection(other))
TypeError: unhashable type: 'dict'
函数(如sqlalchemy: TypeError: unhashable type creating instance, sqlalchemy所示),但这并没有帮助。
以下是一个显示此问题的完整代码示例:
__hash__
我有什么遗失的吗?
答案 0 :(得分:1)
使用load
代替make_instance
@app.route('/api/v0/user', methods=['POST'])
def user_create():
new_instance, errors = user_schema.load(request.json)
db.session.add(new_instance)
db.session.commit()
return user_schema.jsonify(new_instance), 201