用了flask sqlalchemy的relationship,无法调用

问题描述

用了flask sqlalehemy的relationship,无法调用。出现错误提示
TypeError: 'InstrumentedAttribute' object is not callable

问题出现的环境背景及自己尝试过哪些方法

python 3.7

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

  • 车辆任务表
class CarJob(db.Model):
    """
    车辆任务单,一对多。对应:
        员工申请单:t_carjob_application
        司机任务单:t_carjob_tasks
        任务评价单:t_carjob_scores
    """
    __tablename__ = 't_carjob'
    id = db.Column(db.Integer, primary_key=True)
    jobdate = db.Column(db.DateTime, unique=True) # 派车日期
    jobtime = db.Column(db.String(5), unique=True) #派车时间

    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    jobdetail = db.Column(db.String(200)) #任务描述
    # 一对多查询,工单的用户申请单情况
    passengers = db.relationship('CarJob_Application', backref='jobs',lazy='dynamic')
    # 一对多查询,工单安排的司机
    drivers = db.relationship('CarJob_Task', backref='jobs',lazy='dynamic')

    def __repr__(self):
        return '<CarJob {}>'.format(self.id)
  • 员工申请表
class CarJob_Application(db.Model):
    """
    员工申请单
    """
    __tablename__ = 't_carjob_application'
    id = db.Column(db.Integer, primary_key = True)
    userid = db.Column(db.String(20), db.ForeignKey('user.userid'))
    jobid = db.Column(db.Integer, db.ForeignKey('t_carjob.id'))

    def is_applied(self, userid):
        """
        判断用户今日是否已申请派车
        """
        return False
  • 司机任务表
class CarJob_Task(db.Model):
    """
    司机任务单
    """
    __tablename__ = 't_carjob_task'
    id = db.Column(db.Integer, primary_key = True)
    driverid = db.Column(db.String(20), db.ForeignKey('user.userid')) #司机id,实为user表的userid
    jobid = db.Column(db.Integer, db.ForeignKey('t_carjob.id'))
    scores = db.Column(db.Integer) # 司机任务评价
  • 模板list.html
{% extends "base.html" %}

{% block app_content %}

    <ul class="list-group">
        {% for driver in drivers %}
        <li class="list-group-item">用户:{{ driver.id }} ,短号:<b>{{ driver.id }}</b> 公里</li>
        {% endfor %}
    </ul>
{% endblock %}

你期待的结果是什么?实际看到的错误信息又是什么?

  • 希望可以列出某个时段的员工申请的信息和委派的司机信息。
阅读 2.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题