Пример #1
0
 def __get__(self, obj, type):
     if obj is None:
         return self
     query = ((self.otherClass.q.id == sqlbuilder.Field(
         self.intermediateTable, self.otherColumn))
              & (sqlbuilder.Field(self.intermediateTable, self.joinColumn)
                 == obj.id))
     select = self.otherClass.select(query)
     return _ManyToManySelectWrapper(obj, self, select)
Пример #2
0
 def __get__(self, obj, type):
     if obj is None:
         return self
     query = (sqlbuilder.Field(self.otherClass.sqlmeta.table,
                               self.joinColumn) == obj.id)
     select = self.otherClass.select(query)
     return _OneToManySelectWrapper(obj, self, select)
Пример #3
0
 def _setOtherClass(self, otherClass):
     self.otherClass = otherClass
     if not self.joinColumn:
         self.joinColumn = styles.getStyle(self.soClass).tableReference(
             self.soClass.sqlmeta.table)
     self.clause = (sqlbuilder.Field(self.otherClass.sqlmeta.table,
                                     self.joinColumn) == self.soClass.q.id)
Пример #4
0
 def _finishSet(self):
     if self.intermediateTable is None:
         names = [self.soClass.sqlmeta.table, self.otherClass.sqlmeta.table]
         names.sort()
         self.intermediateTable = '%s_%s' % (names[0], names[1])
     if not self.otherColumn:
         self.otherColumn = self.soClass.sqlmeta.style.tableReference(
             self.otherClass.sqlmeta.table)
     if not self.joinColumn:
         self.joinColumn = styles.getStyle(self.soClass).tableReference(
             self.soClass.sqlmeta.table)
     events.listen(self.event_CreateTableSignal, self.soClass,
                   events.CreateTableSignal)
     events.listen(self.event_CreateTableSignal, self.otherClass,
                   events.CreateTableSignal)
     self.clause = (
         (self.otherClass.q.id == sqlbuilder.Field(self.intermediateTable,
                                                   self.otherColumn))
         & (sqlbuilder.Field(self.intermediateTable, self.joinColumn)
            == self.soClass.q.id))