Python 我在SQLAlchemy中的一对多关系有什么问题?
我有两个模型,它们之间有一对多的关系。对于许多Python 我在SQLAlchemy中的一对多关系有什么问题?,python,sqlalchemy,flask-migrate,Python,Sqlalchemy,Flask Migrate,我有两个模型,它们之间有一对多的关系。对于许多参数,有一个辩论 我的辩论定义如下: class Debate(BaseModel): __tablename__ = "debates" title = db.Column( db.String(1000), nullable=False ) description = db.Column( db.String(10000), nullable
参数
,有一个辩论
我的辩论定义如下:
class Debate(BaseModel):
__tablename__ = "debates"
title = db.Column(
db.String(1000),
nullable=False
)
description = db.Column(
db.String(10000),
nullable=True
)
creator_id = db.Column(
db.Integer,
db.ForeignKey("users.id"),
nullable=False
)
community_id = db.Column(
db.Integer,
db.ForeignKey("communities.id"),
nullable=False
)
arguments = db.relationship(
"Argument",
backref="debates"
)
def __repr__(self):
return "<Debate: {0}>".format(self.title)
class Argument(BaseModel):
__tablename__ = "arguments"
title = db.Column(
db.String(1000),
nullable=False
)
content = db.Column(
db.String(1000000),
nullable=False
)
user_id = db.Column(
db.Integer,
db.ForeignKey('users.id'),
nullable=False
)
debate_id = db.Column(
db.Integer,
db.ForeignKey('debates.id'),
nullable=False
)
def __repr__(self):
return "<Argument: {0}>".format(self.title)
课堂辩论(基本模式):
__tablename=“辩论”
title=db.Column(
db.字符串(1000),
nullable=False
)
description=db.Column(
db.字符串(10000),
可为空=真
)
creator\u id=db.Column(
db.Integer,
db.ForeignKey(“users.id”),
nullable=False
)
社区id=db.Column(
db.Integer,
db.ForeignKey(“communities.id”),
nullable=False
)
参数=db.relationship(
“论点”,
backref=“辩论”
)
定义报告(自我):
返回“”格式(self.title)
我的论点定义如下:
class Debate(BaseModel):
__tablename__ = "debates"
title = db.Column(
db.String(1000),
nullable=False
)
description = db.Column(
db.String(10000),
nullable=True
)
creator_id = db.Column(
db.Integer,
db.ForeignKey("users.id"),
nullable=False
)
community_id = db.Column(
db.Integer,
db.ForeignKey("communities.id"),
nullable=False
)
arguments = db.relationship(
"Argument",
backref="debates"
)
def __repr__(self):
return "<Debate: {0}>".format(self.title)
class Argument(BaseModel):
__tablename__ = "arguments"
title = db.Column(
db.String(1000),
nullable=False
)
content = db.Column(
db.String(1000000),
nullable=False
)
user_id = db.Column(
db.Integer,
db.ForeignKey('users.id'),
nullable=False
)
debate_id = db.Column(
db.Integer,
db.ForeignKey('debates.id'),
nullable=False
)
def __repr__(self):
return "<Argument: {0}>".format(self.title)
类参数(BaseModel):
__tablename_=“arguments”
title=db.Column(
db.字符串(1000),
nullable=False
)
content=db.Column(
db.字符串(1000000),
nullable=False
)
用户id=db.Column(
db.Integer,
db.ForeignKey('users.id'),
nullable=False
)
辩论id=db.Column(
db.Integer,
db.ForeignKey('discussions.id'),
nullable=False
)
定义报告(自我):
返回“”格式(self.title)
我没有得到任何实际的错误。当我尝试使用flask migrate迁移我的应用程序时,它会说
未检测到模式更改
,即使我更改了关系(我不知道这是否正常)。我已删除了我的迁移目录,并重试了相同的结果。当我从DB中选择我的辩论时,它返回时没有参数值
我一直在尝试各种不同的配置和设置,我一直在阅读文档,我只是看不出这个设置有什么问题。我肯定我少了一些小东西。你能告诉我我的定义有什么问题吗?有什么问题吗?您是否收到错误?抱歉,我在中添加了错误描述。“即使我更改了关系(我不知道这是否正常)”,这也是正常的。关系在对象关系映射的对象端工作,因此对其进行更改不需要对数据库进行任何更改。请提供一个包含如何添加和查询数据的示例的示例。@IljaEverilä在试图创建一个可复制的示例时,我在这个问题上遇到了障碍。我使用flask_marshmallow为我进行编组,并对该视图的
参数值使用了一个旧名称。以前它们被称为posts
。