ich habe wieder ein Problem wo ich nicht weiter komme wo ich auch nicht geeignetes im Internet drüber finde.
Die sache ist die:
Ich habe zwei Tabellen die in einer m:n Relation mitterinander in
Beziehung stehen. Das inser von daten in die Workshop und Reader table geht ohne Probleme aber das einlesen von Daten in die Secondary Table erzeugt unten aufgeführte Fehlermeldung.
Die Frage ist wiso erkennt Sqlalchemy nicht das das meine Secondary Table ist und das die schon gemapped ist. Ich finde einfach nicht zu insert von Daten in Secondary table währ toll wenn ihr mir weiterhelfen könntet.
Im voraus schon vielen Danke
Mirela
Code: Alles auswählen
Workshop_table=Table(
'Workshop', bound_meta1,
Column('Workshop_ID', Integer, primary_key=True),
Column('Study', Text(200)),
Column('Date',String(12)),
Column('Name', String(200)),
Column('Locetion', String(80)))
Reader_table=Table(
'Reader',bound_meta1,
Column('Person_ID', Integer, primary_key=True),
Column('Date', Date),
Column('Time', String(10)),
Column('PersonalDataReader_ID', Integer, ForeignKey('PersonalDataReader.PersonalDataReader_ID'), nullable=False))
# secondary table
ToAttend_table=Table(
'ToAttend', bound_meta1,
Column('Usability', String(80), nullable=True),
Column('Comment', String(200), nullable=True),
Column('Workshop_ID',Integer, ForeignKey('Workshop.Workshop_ID'), primary_key=True),
Column('Person_ID', Integer, ForeignKey('Reader.Person_ID'), primary_key=True))
class Workshop(object):
def __init__(self, Name, Study, Locetion, Date):
self.Name=Name
self.Study=Study
self.Locetion=Locetion
self.Date=Date
def __repr__(self):
return "<Workshop ('%s','%s','%s','%s')>" % (self.Name,self.Study,
self.Locetion, self.Date)
class Reader(object):
def __init__(self, Date, Time, PersonalDataReader_ID):
self.Date=Date
self.Time=Time
self.PersonalDataReader_ID=PersonalDataReader_ID
def __repr__(self):
return "<Reader_table ('%s','%s','%s')>" % (self.Date, self.Time, self.PersonalDataReader_ID)
class ToAttend(object):
def __init__(self, Usability,Comment, Workshop_ID, Person_ID):
self.Usability=Usability
self.Comment=Comment
self.Workshop_ID=Workshop_ID
self.Person_ID=Person_ID
def __repr__(self):
return "<ToAttend_table ('%s', '%s','%s', '%s')>"%(self.Usability, self.Comment, self.Worksop_ID, self.Person_ID)
mapper(Workshop, Workshop_table, properties={ 'toattendWorkshop' :relation(Reader, secondary=ToAttend_table, backref='Workshop')})
mapper(Reader, Reader_table, properties={
'toattendReader':relation(Workshop, secondary=ToAttend_table, backref='Reader')})
Traceback (most recent call last):
File "K:\Datenbanken Projekt\Python Parser\Parser_Doppelpath.py", line 1177, in <module>
values=Parsing(withoutdupfile, withoutduppath)
File "K:\Datenbanken Projekt\Python Parser\Parser_Doppelpath.py", line 319, in Parsing
session.add(ToAttend_dateneinlesenTumor)
File "c:\python25\lib\site-packages\sqlalchemy-0.5.0rc2-py2.5.egg\sqlalchemy\orm\session.py", line 1110, in add
state = _state_for_unknown_persistence_instance(instance)
File "c:\python25\lib\site-packages\sqlalchemy-0.5.0rc2-py2.5.egg\sqlalchemy\orm\session.py", line 1574, in _state_for_unknown_persistence_instance
raise exc.UnmappedInstanceError(instance)
UnmappedInstanceError: Class '__main__.ToAttend' is not mapped