簡體   English   中英

SQLAlchemy.all() 在使用 filter_by() 調用時不返回全部

[英]SQLAlchemy .all() not returning all when called with filter_by()

所以每當我 Order.query.all() 返回的結果是完整的,但是當 Order.query.filter_by(id=current_user.id).all() 我只得到一個結果。

DB model 設置:

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 %}

我認為您應該使用 user_id 而不是 id;

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

因為每個 object 的 id 都是唯一的,當您調用該代碼時,它實際上會返回 id= current_user.id 的訂單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM