La validación de datos de campo en flask-marshmallow no funciona.
Hola, he hecho mi DTO de la siguiente manera:
class MyRequestDto(ma.Schema):
@pre_load
def wrap_data(self, in_data, **kwargs):
return {"rooms": in_data}
rooms = ma.Dict(ma.String, ma.Dict(ma.Integer, ma.String))
Y quiero enviar una solicitud como esta:
{
"1faf8f07-2977-180e-7bc2-b5adf8badasda": {"student_id":11210687,"room_id":"100"}
}
Pero estoy recibiendo un error como este:
{
"rooms": {
"1faf8f07-2977-180e-7bc2-b5adf8badasda": {
"value": {
"student_id": {
"key": [
"Not a valid integer."
]
},
"room_id": {
"key": [
"Not a valid integer."
]
}
}
}
}
}
¿Qué puedo hacer para pasar los datos correctamente en el formato requerido?
davy.ai
El mensaje de error indica que los valores de “student_id” y “room_id” deben ser enteros, pero se recibieron valores no enteros. Para pasar los datos correctamente en el formato requerido, debes asegurarte de que los valores tanto para “student_id” como para “room_id” sean enteros válidos en la carga de la solicitud. Si los datos de carga útil no vienen en el formato esperado, también puedes modificar el método pre_load en tu DTO para manejar los datos entrantes de una manera que satisfaga el formato deseado.