Flask - нерешенная проблема с запросами - PullRequest
0 голосов
/ 17 января 2020

Я новичок в flask_restless для создания API, и я застрял в создании запроса для вложенных данных. Я делаю все шаги в соответствии с официальной документацией, но когда я хочу построить запрос на вложенный вызов, поданный с использованием следующей конструкции Поле ___ nameOfField => каждый раз, когда я получаю ошибку

Невозможно построить query

Хотя я гуглил и искал здесь на stackoverflow, я все еще не могу понять, почему он не работает. Может кто-нибудь объяснить, что я делаю не так и как заставить это работать. Заранее большое спасибо.

Мне нужно создать запрос и показать данные пользователя, которые имеют computers.owner_id == 1

мой запрос

{"filters":[{"name":"computers__owner_id", "op":"eq", "val":1}]}

Вот самый простой код (все из официальных документов)

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import flask_restless
from flask_restless import APIManager

app = Flask(__name__)
app.config['DEBUG'] = True
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:root@localhost:5883/api?charset=utf8mb4'
db = SQLAlchemy(app)

class Person(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(120), unique=True)
    birth_date = db.Column(db.Date)


class Computer(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(120), unique=True)
    vendor = db.Column(db.String(120))
    purchase_time = db.Column(db.DateTime)
    owner_id = db.Column(db.Integer, db.ForeignKey('person.id'))
    owner = db.relationship('Person', backref=db.backref('computers',
                                                         lazy='dynamic'))

db.create_all()

manager = APIManager(app, flask_sqlalchemy_db=db)

manager.create_api(Person, methods=['GET', 'POST', 'DELETE'])
manager.create_api(Computer, methods=['GET'])

if __name__ == "__main__":
    app.run(debug=True)

JSON объект

{
  "num_results": 2,
  "objects": [
    {
      "birth_date": null,
      "computers": [
        {
          "id": 1,
          "name": "c_dima",
          "owner_id": 1,
          "purchase_time": null,
          "vendor": null
        },
        {
          "id": 3,
          "name": "c_none",
          "owner_id": 1,
          "purchase_time": null,
          "vendor": null
        }
      ],
      "id": 1,
      "name": "Dima"
    },
    {
      "birth_date": null,
      "computers": [
        {
          "id": 2,
          "name": "c_olya",
          "owner_id": 2,
          "purchase_time": null,
          "vendor": null
        }
      ],
      "id": 2,
      "name": "Olya"
    }
  ],
  "page": 1,
  "total_pages": 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...