Обновить строку, используя sqlalchemy, зефир и колбу? - PullRequest
0 голосов
/ 30 сентября 2019

Я использую колбу, sqlalchemy и зефир, у меня есть таблица с данными и POST, GET и DELETE работают нормально, у меня проблема с обновлением всей строки путем передачи данных в виде JSON, я запрашиваю строкупо столбцу клиента, перепробовал все варианты, которые я смог найти, нет реального примера обновления данных из JSON, есть какая-нибудь помощь?

db = SQLAlchemy(app)
ma = Marshmallow(app)

class Feedback(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    customer = db.Column(db.String(200), unique=True)
    dealer = db.Column(db.String(200))
    rating = db.Column(db.Integer)
    comments = db.Column(db.Text)

def __init__(self, customer, dealer, rating, comments): 
    self.customer = customer
    self.dealer = dealer
    self.rating = rating
    self.comments = comments

class FeedbackSchema(ma.Schema): 
    class Meta:
        fields = ('id', 'customer', 'dealer', 'rating', 'comments')

feedback_schema = FeedbackSchema()
feedbacks_schema = FeedbackSchema(many=True) 

@app.route('/updateReview', methods=['PUT'])
def updateReview():
    customer = request.args['customer']
    if customer == '':
        return 'Bad request, please enter Customer', 404
    customer = request.json['customer']
    dealer = request.json['dealer']
    rating = request.json['rating']
    comments = request.json['comments']
    update_customer = Feedback(customer, dealer, rating, comments)
    cus = Feedback.query.filter_by(customer=customer).first()
    cus.update(update_customer)
    db.session.commit()
    return 'ok'

1 Ответ

2 голосов
/ 30 сентября 2019

Проблема в том, как вы создаете update_customer и как вы пытаетесь обновить cus.

Попробуйте это.

feedback = Feedback.query.filter_by(customer=customer).first()

feedback.customer = customer
feedback.dealer = dealer
feedback.rating = rating
feedback.comments = comments

db.session.add(feedback)
db.session.commit()
...