Я пытаюсь извлечь выбранные столбцы из объединения двух таблиц и возврата результатов с использованием api.marshal_list_with
. Мое определение модели выглядит следующим образом:
project_model = api.model('Project', {
'id': fields.String(readOnly=True, description='Unique project id'),
'name': fields.String(required=True, description='Project name'),
'created_user_id': fields.String(description='Id for user that created the project'),
'created_time': fields.String(readOnly=True, description='Time of first creation'),
'updated_time': fields.String(description='Time of last modification'),
'access_type': fields.String(description='Level of access')})
Фактический код запроса:
@api.marshal_list_with(project_model)
def get(self):
"""
Get details of all projects associated with user
"""
user_id = get_jwt_identity()
projects_l = db.session.query(Project, ProjectUserJunction).join(
ProjectUserJunction).filter(ProjectUserJunction.user_id == user_id).values(
Project.id, Project.name, Project.created_user_id,
Project.created_time, Project.updated_time,
ProjectUserJunction.access_type)
return projects_l
Когда я делаю вызов get, ответ, который я получаю, является связкой нулей:
{
"id": null,
"name": null,
"created_user_id": null,
"created_time": null,
"updated_time": null,
"access_type": null
}
Если я распечатываю содержимое project_l
на сервере, это не пустые места, поэтому я знаю, что запрос не нарушен. Это может быть что-то с маршалингом, которого мне не хватает. Как я могу решить эту проблему?