Я пытаюсь обновить данные во внешнем интерфейсе, используя React / Redux из запроса PUT в бэкэнде flask / sqlalchemy / postgres.Моя проблема в том, что моя конечная точка может обновляться только по идентификатору, который бесполезен для внешнего интерфейса.Причина в том, что обновляемые данные взяты из класса отношений, который существует только для объединения двух других классов.Что мне нужно сделать, это выяснить, как запросить и вернуть по user_id и country_id, а не по id.Кстати, я тестирую локально с почтальоном.Ниже приведены модели для класса соединения (таблица)
class users_countries_join(db.Model):
id = db.Column(Integer, autoincrement=True, primary_key=True)
user_id = db.Column(Integer, ForeignKey(users.id), nullable=False)
country_id = db.Column(Integer, ForeignKey(countries.id), nullable=False)
status = db.Column(Integer, nullable=False)
notes = db.Column(TEXT, nullable=True)
user = db.relationship('users', backref='user_countries')
country = db.relationship('countries', backref='travelers')
def __init__(self, user_id, country_id, status, notes):
self.user_id = user_id
self.country_id = country_id
self.status = status
self.notes = notes
def __repr__(self):
return '<{}>' % self.__name__
Код конечной точки:
@app.route('/api/mapview/<int:user_id>/<int:country_id>/<int:id>', methods=['PUT'])
def update_mapView_data(user_id, country_id, id):
user_country = users_countries_join.query.get(id)
user_country.user_id = request.json[‘user_id’]
user_country.country_id = request.json[‘country_id’]
user_country.status = request.json[‘status’]
user_country.notes = request.json[‘notes’]
db.session.commit()
return user_country_schema.jsonify(user_country)
Я пытался изменить конечную точку на код ниже, но это не работает.Теоретически, мне нужно такое обновление.Тот, который обновляется путем доступа к данным через user_id и country_id, а не идентификатор класса.Я начинаю думать, что id не нужен для начала.
@app.route('/api/mapview/<int:user_id>/<int:country_id>', methods=['PUT'])
def update_mapView_data(user_id, country_id):
user_country = users_countries_join.query.get(user_id, country_id)
user_country.user_id = request.json[‘user_id’]
user_country.country_id = request.json[‘country_id’]
user_country.status = request.json[‘status’]
user_country.notes = request.json[‘notes’]
db.session.commit()
return user_country_schema.jsonify(user_country)
Может ли кто-нибудь указать мне правильное направление, как это сделать?Я надеюсь, что просто усложняю это, чем должно быть.