2015-12-26 3 views
0

У меня есть модель Post следующим образом -Колба RESTful API поставил ошибку

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 не обновляется.

+0

Какая ошибка? – mic4ael

+0

Вы пытались: '@ app.route ('/ path', methods = ['PUT', 'POST'])' – Valijon

+0

нет ошибки, объект не обновляется, а старый возвращается. – utkbansal

ответ

1

Вместо ручного обновления post.__dict__ использовать setattr.

Смежные вопросы