0
我有一個關係問題(...),我不明白爲什麼。一對一關係SQLAlchemy與多個文件
錯誤:
「InvalidRequestError:當初始化映射器映射|用戶|用戶,表達‘BannedUser’未能找到一個名稱(」名稱「BannedUser」沒有定義「)如果這是一個類名。 ,在兩個相關類都被定義之後,考慮將這個關係()添加到類中。「
這是代碼:
用戶模型
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import relationship
from .base import Base as BaseModel
class User(BaseModel, declarative_base()):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
username = Column(String(16))
password = Column(String(16))
nickname = Column(String(16))
secret_question = Column(String(50))
secret_answer = Column(String(50))
role = Column(Integer)
is_banned = relationship("BannedUser", uselist=False, back_populates='users')
禁止用戶模型:
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey
from sqlalchemy.orm import relationship
from .base import Base as BaseModel
class BannedUser(BaseModel, declarative_base()):
__tablename__ = 'banned_users'
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('users.id'))
user = relationship('User', back_populates='banned_users')
reason = Column(String)
time_end = Column(DateTime)
我試過類,而不是直接的類字符串,但也不能正常工作。
我嘗試'User.id'而不是'users.id',但發生同樣的事情。
我不知道該怎麼做。
非常感謝您的幫助。
同樣的錯誤我在我的問題說:( –
啊,對不起,(它仍然是一個在你的代碼的問題,我認爲)。它看起來與你使用'declarative_base'的方式有關。檢查這個http://stackoverflow.com/questions/7478403/sqlalchemy-classes-across-files – creativeChips
發現!我只是在我的Database類中添加一個Base = declarative_base(),並將其擴展到我的模型中 –