Класс / таблица Flask-SQLAlchemy Отношение многие ко многим - таблица не найдена - PullRequest
0 голосов
/ 22 ноября 2018

Требуется помощь ... Я вроде понял, что это плохой стиль - определять реляционную "вспомогательную" таблицу как класс, но хочу использовать ее для хранения некоторой информации, которая там находится иполучить доступ к нему удобно, что я делаю не так?Когда я настраиваю его как таблицу, у меня не возникает проблем ...

Спасибо!

from alexa import db


# Relation tables


class Todos(db.Model):
    _tablename_ = 'todos'
    id = db.Column(db.Integer, primary_key=True)
    order_id = db.Column(db.Integer,
                         db.ForeignKey("order.id"))
    sequence = db.Column(db.Integer)
    step_id = db.Column(db.Integer,
                        db.ForeignKey("step.id"))

    orders = db.relationship("Order",
                             backref=db.backref("todos",
                                                cascade="all, delete-orphan"))
    steps = db.relationship("Step",
                            backref=db.backref("todos",
                                               cascade="all, delete-orphan"))

# Actual tables


class Vehicle(db.Model):
    id = db.Column(db.String(20), primary_key=True)
    customer_number = db.Column(db.Integer, unique=True, nullable=False)
    orders = db.relationship("Order", backref="order_vehicle")


class Order(db.Model):
    _tablename_ = 'order'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(200), unique=False, nullable=False)
    status_id = db.Column(db.Integer, db.ForeignKey("status.id"))
    vehicle_id = db.Column(db.Integer, db.ForeignKey("vehicle.id"))


class Step(db.Model):
    _tablename_ = 'step'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(200), unique=False, nullable=False)
    description = db.Column(db.String(200), unique=False, nullable=False)
    status_id = db.Column(db.Integer, db.ForeignKey("status.id"))

    comment_id = db.Column(db.Integer, db.ForeignKey("comment.id"))


class Status(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(200), unique=False, nullable=False)
    steps = db.relationship("Step", backref="step")
    orders = db.relationship("Order", backref="order_status")


class Comment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String(2000), unique=False, nullable=False)
    step = db.relationship("Step", backref="step_comment")

Моя ошибка:

  File "C:\Anaconda3\lib\site-packages\sqlalchemy\engine\default.py", line 507, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: no such table: order

...

    context)
  File "C:\Anaconda3\lib\site-packages\sqlalchemy\engine\default.py", line 507, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: order [SQL: 'SELECT "order".id AS order_id, "order".title AS order_title, "order".status_id AS order_status_id, "order".vehicle_id AS order_vehicle_id \nFROM "order" \nWHERE "order".id = ?\n LIMIT ? OFFSET ?'] [parameters: ('1', 1, 0)] (Background on this error at: http://sqlalche.me/e/e3q8)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...