@beduin01

Почему не устанавливается связь между таблицами через ForeignKey?

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import sessionmaker, relationship

engine = create_engine('sqlite:///:memory:', echo=True)
Session = sessionmaker(bind=engine)
sess = Session()
Base = declarative_base()

class User(Base):
	__tablename__ = 'users'

	id = Column(Integer, primary_key=True)
	name = Column(String)

class Address(Base):
	__tablename__ = 'addresses'
	id = Column(Integer, primary_key=True)
	email = Column(String, nullable=False)
	user_id = relationship('User', ForeignKey('Users.id'))

Base.metadata.create_all(engine)


Ошибка:
AttributeError: 'ForeignKey' object has no attribute 'foreign_keys'
  • Вопрос задан
  • 242 просмотра
Решения вопроса 1
@zzzevaka
как-то так:

class Address(Base):
  __tablename__ = 'addresses'
  id = Column(Integer, primary_key=True)
  email = Column(String, nullable=False)
  user_id = Column(Integer, ForeignKey('users.id'))
  user = relationship(User)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы