Я пытаюсь поместить вложенную модель, и она работает, но я вижу новую строку в моей базе данных, созданной за это же время.
api / program.py:
@app.route("/programs/<id>", methods=["PUT"])
def update_program(id):
program = Program.query.filter_by(id=id).first()
res = program_nested_schema.load(request.json)
program.name = res.data.name
program.steps = res.data.steps
program.updated_at = datetime.utcnow()
db.session.add(program)
db.session.commit()
return program_nested_schema.jsonify(program)
(я думаю, что это проблема с моей вложенной схемой)
схемы:
class ProgramNested(ma.ModelSchema):
class Meta:
model = Program
fields = ('name', 'visibility', 'steps')
steps = fields.Nested(ProgramStepsSchema, many=True)
program_nested_schema = ProgramNested()
class ProgramStepsSchema(ma.ModelSchema):
class Meta:
model = Step
exercise = fields.Nested(GetExerciseSchema, many=False, only=('id',))
class GetExerciseSchema(ma.ModelSchema):
class Meta:
model = Exercise
fields = ('id', 'name', 'image', 'visibility')
В дополнение к обновлению при отправке этого тела создается строка:
{
"id": 2,
"name": "Jambes",
"steps": [
{
"exercise": {
"id": 6,
"image": "pompe.jpg",
"name": "Pompes"
},
"id": 6,
"position": 1,
"repetitions": 200,
"rest": 30,
"rest_end": 60,
"series": 3,
"weight": 0
},
{
"exercise": {
"id": 7,
"image": "10763352.jpg",
"name": "Squats"
},
"id": 70,
"position": 2,
"repetitions": 11,
"rest": 45,
"rest_end": 90,
"series": 4,
"weight": 16
}
],
"visibility": "PRIVATE"
}
Это мой первый пост, сообщите мне, если вам нужна дополнительная информация, и я прошу прощения за мой очень приблизительный английский