对于任何缺乏解释以及这篇文章的长度,我提前道歉。我认为这个问题比我想象的要简单得多。我有两个使用一对多关系的模型。对于我的 InsightModel,我使用 json() 方法显示以下内容:
{
name: "insightname",
start: 1,
end: 3,
podcast_id: 1,
podcast: {
name: "podcast1",
wave_data: 1,
length: 2,
host: "Hosterman",
category: "entertain",
pub_date: "11/1",
cover_art_url: "google.com"
}
}
对于我的 PodcastModel,json() 方法显示以下内容:
{
name: "podcast1",
wave_data: 1,
length: 2,
host: "Hosterman",
category: "entertain",
pub_date: "11/1",
cover_art_url: "google.com",
insights: [
{
name: "insightname",
start: 1,
end: 3,
podcast_id: 1
}
]
}
这按我的需要工作,但为了使其工作,我必须为每个类创建两个 json() 方法,以避免在 PodcastModel 中出现如下所示的递归:
{
name: "podcast1",
wave_data: 1,
length: 2,
host: "Hosterman",
category: "entertain",
pub_date: "11/1",
cover_art_url: "google.com",
insights: [
{
name: "insightname",
start: 1,
end: 3,
podcast_id: 1,
podcast: {
name: "podcast1",
wave_data: 1,
length: 2,
host: "Hosterman",
category: "entertain",
pub_date: "11/1",
cover_art_url: "google.com",
}
}
]
}
我的 PodcastModel 代码是:
from db import db
from datetime import datetime
class PodcastModel(db.Model):
__tablename__ = 'podcasts'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100))
wave_data = db.Column(db.Float(precision=2))
length = db.Column(db.Float(precision=2))
host = db.Column(db.String(80))
category = db.Column(db.String(80))
pub_date = db.Column(db.String(50))
cover_art_url = db.Column(db.String(200))
如您所见,我添加了 json_no_insights() 和 json_no_podcast() 方法来防止递归发生。但是,我确信阅读此代码已经让您感到胃部不适,我迫切希望有更好的方式来编写它。非常感谢您的任何见解,再次,对于这篇文章的长度或任何缺乏解释,我深表歉意。
四季花海
相关分类