2015-06-11 3 views
3

Я присоединяюсь две модели без внешнего ключа:Колба SQLAlchemy соединить две модели без внешнего ключа MYSQL

Модели:

class Users(db.Model): 
    __tablename__ = "Users" 
    userName = db.Column(db.String, primary_key=True) 
    lastLogin = db.Column(db.DateTime) 

class TimeOff 
    __tablename__ = "timeOff" 
    timeOffID = db.Column(db.Integer, primary_key=True) 
    userName = db.Column("userName", db.String, db.ForeignKey('appUsers.userName')), 
    dayWork = db.Column(db.DateTime) 

Вид:

result = db.session.query(models.Users).join(models.TimeOff) 

sqlalchemy.exc.InvalidRequestError: Could not find a FROM clause to join from. Tried joining to but got: Can't find any foreign key relationships between 'TimeOff' and 'Users'.

Я не имею внешний ключ, определенный в таблице

ответ

5

Вам нужно указать SQLAlchemy, как присоединиться к таблицам. Попробуйте что-то вроде этого:

result = db.session.query(Users).join(TimeOff,Users.userName==TimeOff.userName) 
+0

Подходит ли это для несвязанных таблиц? – roy

+0

Это работает для несвязанных таблиц. Убедитесь, что ваши таблицы заполнены во время работы. Некоторое время назад я понял, что у меня нет результатов, потому что мой стол был незаселен. – Kevin

Смежные вопросы