please run the attached. your code runs fine.
On 5/13/15 11:49 AM, willian coelho wrote:
Hello everyone,
I`m getting an error when creating a new instance of my model `Type`.
I have a many-to-many relationship between Type and Maker.
Code:
|
type_maker =db.Table('type_maker', db.metadata,
db.Column('type_id',db.Integer,db.ForeignKey('type.id')),
db.Column('maker_id',db.Integer,db.ForeignKey('maker.id')))
classType(db.Model):"""VehicleType """__tablename__ ='type'id
=db.Column(db.Integer,primary_key=True) name
=db.Column(db.String(50),unique=True,index=True) makers
=db.relationship('Maker',secondary='type_maker',backref=db.backref('type'))def__repr__(self):return'<Type
#{}: {}>'.format(self.id,self.name)
classMaker(db.Model):"""VehicleMaker """__tablename__ ='maker'id
=db.Column(db.Integer,primary_key=True) name
=db.Column(db.String(50),index=True) versions
=db.relationship('Version',backref=db.backref('maker'))def__repr__(self):return'<Maker
#{}: {}>'.format(self.id,self.name)
type_ =Type(name='Car')
|
Error:
|
'tuple'objecthas noattribute 'foreign_keys'
|
What is wrong with the code?
Thanks in advance!
Michael Coelho.
--
You received this message because you are subscribed to the Google
Groups "sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base
Model = declarative_base()
metadata = Model.metadata
# association between type and maker tables
type_maker = Table('type_maker', metadata,
Column('type_id', Integer, ForeignKey('type.id')),
Column('maker_id', Integer, ForeignKey('maker.id')))
# association between vehicle and maker tables
vehicle_maker = Table('vehicle_maker', metadata,
Column('maker_id', Integer, ForeignKey('maker.id')),
Column('vehicle_id', Integer, ForeignKey('vehicle.id')))
# association between vehicle and model tables
vehicle_model = Table('vehicle_model', metadata,
Column('model_id', Integer, ForeignKey('model.id')),
Column('vehicle_id', Integer, ForeignKey('vehicle.id')))
# association between vehicle and version tables
vehicle_version = Table('vehicle_version', metadata,
Column('version_id', Integer, ForeignKey('version.id')),
Column('vehicle_id', Integer, ForeignKey('vehicle.id')))
# association between vehicle and feature tables
vehicle_feature = Table('vehicle_feature', metadata,
Column('vehicle_id', Integer, ForeignKey('vehicle.id')),
Column('feature_id', Integer, ForeignKey('feature.parent_id')))
class Type(Model):
"""VehicleType
"""
__tablename__ = 'type'
id = Column(Integer, primary_key=True)
name = Column(String(50), unique=True, index=True)
makers = relationship('Maker', secondary=type_maker, backref=backref('type'))
def __repr__(self):
return '<Type #{}: {}>'.format(self.id, self.name)
class Maker(Model):
"""VehicleMaker
"""
__tablename__ = 'maker'
id = Column(Integer, primary_key=True)
name = Column(String(50), index=True)
versions = relationship('Version', backref=backref('maker'))
def __repr__(self):
return '<Maker #{}: {}>'.format(self.id, self.name)
class Version(Model):
"""VehicleVersion
"""
__tablename__ = 'version'
id = Column(Integer, primary_key=True)
maker_id = Column(Integer, ForeignKey('maker.id'))
name = Column(String(50), index=True)
code = Column(String(10), index=True)
models = relationship('Model', backref=backref('version'))
def __repr__(self):
return '<Version #{}: {}>'.format(self.id, self.name)
class Model(Model):
"""VehicleModel
"""
__tablename__ = 'model'
id = Column(Integer, primary_key=True)
version_id = Column(Integer, ForeignKey('version.id'))
name = Column(String(50), index=True)
code = Column(String(10), index=True)
price = Column(Float(precision=2), index=True)
def __repr__(self):
return '<Model #{}: {}>'.format(self.id, self.name)
print Type()