use*_*419 6 inheritance sqlalchemy flask
我有一个类似于下面的类结构.sqlalchemy使用db.create_all创建的表看起来不错.添加了相应列的作业(教师的school_id,警察的precinct_id).尝试调用do_stuff()时出现问题:
p = Teacher(...)
p.do_stuff()
Run Code Online (Sandbox Code Playgroud)
返回"hey im the parent",这是Job的返回值.因此,即使所有内容都正确地插入到数据库中,看起来实际的继承似乎没有发生,而是唯一的模型就是作业模型.有没有办法解决这个问题,还是应该以另一种方式设置?
class Job(db.Model):
id = Column(Integer, primary_key=True)
...
def __init__(...):
...
def do_stuff(self):
print 'hey im the parent'
class Teacher(Job):
school_id = Column(Integer, ForeignKey('school.id'))
def __init__(...):
super(Teacher, self).__init__(...)
self.school_id = school_id
def do_stuff(self):
print 'teacher here'
class Policeman(Job):
precinct_id = Column(Integer, ForeignKey'precinct.id'))
def __init__(...):
super(Policeman, self).__init__(...)
self.precinct_id = precinct_id
def do_stuff(self):
print 'police ack'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1847 次 |
| 最近记录: |