2010-04-14 1 views
1
from sqlalchemy.orm import relation, backref 
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey, Date, Sequence 
from sqlalchemy.ext.declarative import declarative_base 
Base = declarative_base() 

class GUI_SCENARIO(Base): 
    __tablename__ = 'GUI_SCENARIO' 
    Scenario_ID = Column(Integer, primary_key=True) 
    Definition_Date = Column(Date) 

    guiScenarioDefinition = relation('GUI_SCENARIO_DEFINITION', 
     order_by='GUI_SCENARIO_DEFINITION.Scenario_Definition_ID', 
     backref='guiScenario') 

    def __init__(self, Scenario_ID=None, Definition_Date=None): 
     self.Scenario_ID = Scenario_ID 
     self.Definition_Date = Definition_Date 

class GUI_SCENARIO_DEFINITION(Base): 
    __tablename__='GUI_SCENARIO_DEFINITION' 
    Scenario_Definition_ID = Column(Integer, Sequence('Scenario_Definition_ID_SEQ'), primary_key=True) 
    Scenario_FK = Column(Integer, ForeignKey('GUI_SCENARIO.Scenario_ID')) 
    Definition_Date=Column(Date) 
    guiScenario = relation(GUI_SCENARIO, backref=backref('guiScenarioDefinition', order_by=Scenario_Definition_ID)) 
    def __init__(self, Scenario_FK, Definition_Date): 
     self.Scenario_FK = Scenario_FK 
     self.Definition_Date = Definition_Date 

    guiScenario = relation(GUI_SCENARIO, 
     backref=backref('guiScenarioDefinition', 
      order_by=Scenario_Definition_ID)) 
 tableNameScenario = "GUI_SCENARIO" scenarioClass = getattr(MappingTablesScenario, tableNameScenario) tableScenario = Table(tableNameScenario, meta, autoload=True) mapper(scenarioClass, tableScenario) scenarioName = scenarioDefinition.name scenarioDefinitionDate = datetime.today() newScenario = MappingTablesScenario.GUI_SCENARIO(scenarioName, scenarioDefinitionDate) print newScenario.guiScenarioDefinition

오류 :이 오류가 왜SQL 연금술 관련 개체 나는 scenarioObject 관련 개체를 얻을하려고하면, 난 항상이 오류 얻을

AttributeError: 'GUI_SCENARIO' object has no attribute 'guiScenarioDefinition'

사람이 알고 있나요을?

SQLAlchemy 0.5.8을 사용하고 있습니다.

답변

0

나는 mapper()으로 전화하지 않아야한다고 생각합니다. declarative_base을 사용하면 테이블, 클래스 및 매핑을 한 번에 약식 스타일로 정의합니다.

mapper()으로 전화를 끊는 것이 좋습니다.

+0

Mapper()를 제거하면 UnmappedInstanceError가 발생합니다. "UnmappedInstanceError : Class 'MappingTablesScenario.GUI_SCENARIO'이 (가) 매핑되지 않았습니다." – alex

+0

오류를 재생산하는 코드를 게시 할 수 있습니까? – codeape