【发布时间】:2015-12-26 14:47:37
【问题描述】:
我有一个 Post 模型如下 -
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
likes = db.Column(db.Integer)
body = db.Column(db.Text)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
def __init__(self, body, user_id):
self.likes = 0
self.body = body
self.user_id = user_id
我无法使用 PUT 请求更新对象。这是我的代码 -
class UserPost(Resource):
def get(self, post_id):
print(post_id)
return marshal(Post.query.get(post_id), post_fields)
def put(self, post_id):
post = Post.query.get_or_404(post_id)
args = post_parser.parse_args()
print args
for k, v in args.iteritems():
if v is not None:
post.__dict__[k] = v
db.session.add(post)
db.session.commit()
return marshal(post, post_fields)
Post 对象未更新。
【问题讨论】:
-
你试过了吗:
@app.route('/path', methods=['PUT', 'POST']) -
无错误,对象不更新,返回旧对象。
-
@Valijon put 请求正在运行。更新不起作用。
-
也许
v是一个空字符串?在这种情况下,is not None检查将失败。 -
不,我已经用调试器检查过了,v 不是空白的。事实上,该对象已临时更新,但并未以某种方式保存。
标签: python flask flask-restful