问题描述
用了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 %}
你期待的结果是什么?实际看到的错误信息又是什么?
- 希望可以列出某个时段的员工申请的信息和委派的司机信息。