Сопоставление произвольного выбора с таблицей отношений в sqlachemy

#python #select #many-to-many #sqlalchemy

#python #выберите #многие ко многим #sqlalchemy

Вопрос:

У меня есть таблица отношений «многие ко многим» между таблицами Item и Detail, определенная следующим образом:

 itemDetail = Table('ItemDetail',Base.metadata, 
            Column('id', Integer, primary_key=True), 
            Column('itemId', Integer, ForeignKey('Item.id')), 
            Column('detailId', Integer, ForeignKey('Detail.id')), 
            Column('endDate', Date), 
        )
  

Если я определяю элемент внутри таблицы:

 details = relation('Detail', secondary=itemDetail) 
  

это работает нормально.

Но мне нужно что-то немного другое. Дата окончания столбца в таблице ItemDetail указывает, какие сведения являются допустимыми. Когда конечная дата равна нулю, данные действительны.

Итак, на самом деле, мне нужно было бы иметь в моей таблице элементов что-то вроде этого:

 details = relation('Detail', secondary=validItemDetail)
  

Проблема заключается в определении validItemDetail. Я безуспешно пытался сопоставить оператор select с произвольным классом.

Есть идеи?

Комментарии:

1. Я понял это. Я сделал: validItemDetail = select(itemDetail.columns,itemDetail.columns[‘EndDate’]==None,[]).alias(‘validItemDetail’)

2. Вы должны ответить на свой собственный вопрос и затем принять его.