【发布时间】:2022-01-23 10:08:36
【问题描述】:
当这两个模型当前位于不同的文件夹中时,如何正确建立它们之间的外键关系?
from sqlalchemy import Column, String, Integer, DateTime, ForeignKey
from testserver.database import Base
from datetime import datetime
class Service(Base):
__tablename__ = 'services'
id = Column(Integer(), primary_key=True)
name = Column(String(25), nullable=False, unique=True)
description = Column(String(80), nullable=False)
date_created = Column(DateTime(), default=datetime.utcnow)
provider_id = Column(String, ForeignKey('provider.id'))
from sqlalchemy import Column, String, Integer, DateTime
from sqlalchemy.orm import relationship
from testserver.database import Base
from datetime import datetime
from testserver.database import db_session
class Provider(Base):
__tablename__ = 'providers'
id = Column(Integer(), primary_key=True)
name = Column(String(25), nullable=False, unique=True)
description = Column(String(80), nullable=False)
date_created = Column(DateTime(), default=datetime.utcnow)
services = relationship(
'Service', cascade='all, delete-orphan', backref='provided_by')
from sqlalchemy.ext.declarative import declared_attr
class Base(object):
__abstract__ = True
@declared_attr
def __tablename__(cls):
return cls.__name__.lower()
上面的代码当前抛出一个错误:
sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column 'services.provider_id' could not find table 'provider' with which to generate a foreign key to target column 'id'
任何建议或解决方案将不胜感激
【问题讨论】:
标签: python flask sqlalchemy