SQLAlchemy .all () не возвращает все при вызове с filter_by () - PullRequest
0 голосов
/ 06 августа 2020

поэтому всякий раз, когда я Order.query.all () возвращаемые результаты являются полными, но когда Order.query.filter_by (id = current_user.id) .all (), я получаю только один результат.

Настройка модели БД:

class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30), nullable = False)
    email = db.Column(db.String(60), unique = True, nullable = False)
    password = db.Column(db.String(60), nullable = False)
    phone = db.Column(db.Integer, nullable = False)
    country = db.Column(db.String(30), nullable = False)
    city = db.Column(db.String(30), nullable = False)
    address = db.Column(db.String(350), nullable = False)
    kaftl = db.Column(db.String(30), nullable = False)
    order = db.relationship('Order', backref='buyer', lazy=True) 

class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.DateTime, nullable = False, default=datetime.utcnow)
    order = db.Column(db.Text, nullable = False)
    kaftl = db.Column(db.Integer, nullable = False)
    price = db.Column(db.Integer, nullable = False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

HTML на всякий случай:

{% for order in orders %}
       {{ order.price }}
       {{ order.order }}

   {% endfor %}

1 Ответ

0 голосов
/ 06 августа 2020

Я думаю, вместо id вы должны использовать user_id как;

Order.query.filter_by(user_id=current_user.id).all()

Поскольку id уникален для каждого объекта, и когда вы вызываете этот код, он фактически возвращает вам порядок с id = current_user.id .

...