如何查询数据库以从current_user获取值

时间:2020-07-30 17:32:17

标签: flask sqlalchemy

我有2个看起来像这样的表

class Users(db.Model,UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20),unique=True,nullable=False)
    password = db.Column(db.String(60),nullable=False)
    admin = db.Column(db.Boolean, nullable=False)
    expert = db.Column(db.Boolean, nullable=False)
    projects = db.relationship('Projects', backref='author', lazy=True)
    tickets = db.relationship('Tickets',backref='author',lazy=True)

class Tickets(db.Model):
    id = db.Column(db.Integer,primary_key=True)
    title = db.Column(db.String(100),nullable=False)
    ticket_text = db.Column(db.Text,nullable=False)
    date_posted = db.Column(db.DateTime,nullable=False,default=datetime.utcnow)
    status = db.Column(db.String(30), nullable=False)
    priority = db.Column(db.String(30), nullable=False)
    created_by_id = db.Column(db.Integer, nullable=False)
    expert_id = db.Column(db.Integer, db.ForeignKey('users.id'),nullable=False)

如何查询数据库以获取分配给Tickets的所有current_user? 我做了这样的事情,但是它什么也没返回

@app.route('/')
def index():
    projects = Projects.query.all()
    tickets = Tickets.query.filter(Tickets.expert_id == current_user.id).all()
    return render_template('home.html', projects = projects , tickets = tickets)

但是,如果我这样做

tickets = Tickets.query.all()

我可以成功获取数据库中的所有票证

1 个答案:

答案 0 :(得分:0)

由于您的共享代码似乎不完整,您可以重新验证以下内容吗?

  1. current_user的值
  2. Tickets表中是否存在与current_user.id实际相关的任何数据。
  3. 它实际上与用户表保持了Expert_id的关系吗?

如果可以的话,请分享以上信息,如果有问题,那么更容易找出问题。