user_id, education, comment, citizenship
Как мне связать две таблицы? Я сделал класс User и User_Info, и у User_Info сделал поле user_id с ForeignKey('user.user_id'). Но фласк выдает ошибку:
Mapper mapped class User->user could not assemble any primary key columns for mapped table 'user'
Что я не так делаю? Как мне связать их?
код показал бы ради приличия
class User(db.Model): user_id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) middle_name = db.Column(db.String(100), nullable=False) bornDate = db.Column(db.DateTime, default=datetime.strptime('01.01.1990', '%d.%m.%Y')) gender = db.Column(db.String(50)) def __repr__(self): return '<User %r>' % self.user_id class User_Info(db.Model): user_id = db.Column(db.Integer, db.ForeignKey('user.user_id')) education = db.Column(db.String(100)) comment = db.Column(db.Text, nullable=True) citizenship = db.Column(db.String(50)) def __repr__(self): return '<User_Info %r>' % self.user_id
1) в User первичный ключ сделай просто id. 2) в User_Info ты даешь ключ на user.user_id. а как фласк должен понять, что есть user? 3) User_Info - не есть нормальное названи. UserInfo
Спасибо, но я не совсем понял как решить проблему. 1) По ТЗ надо сделать именно поле user_id. Для меня это тоже не очень нормально, но если я правильно понимаю, то на ошибку это не влияет, так ведь? 2) Вот тут не очень понял. Я думал фласк это понимает автоматически, когда я пишу название таблицы и он ищет эту таблицу в БД. Я должен как-то ему дать понять что есть таблица User? 3) Исправил, но это тоже не влияет на ошибку, как я понимаю
Обсуждают сегодня