根据邻接表返回记录

时间:2019-12-21 02:33:53

标签: sql postgresql flask sqlalchemy flask-sqlalchemy

我正在使用邻接列表来创建一些类别和子类别。

class Category(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    title = db.Column(db.String())
    parent_id = db.Column(db.Integer, db.ForeignKey('categories.id'))
    children = db.relationship("Category", 
                                lazy="joined",
                                join_depth=2)
    courses = db.relationship('Course',
                             backref='category',
                             lazy='dynamic')

类别模型与课程模型相关联。

class Course(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    category_id = db.Column(db.Integer, db.ForeignKey('categories.id'), nullable=False)

在我的路线上,我按照类别标题归还课程,如下所示:

@main_blueprint.route('/cursos/<string:category_title>')
def courses_by_category(category_title):
    category = Category.query.filter_by(title=category_title).first_or_404()
    courses = category.courses.all()
    return render_template('main/coursesList.html',
                            category=category,
                            courses=courses
                          ) 

现在,我有点困惑如何配置到类似路线的路线

  1. / parent_category_title / children_category_title ->返回子类别中的所有课程

    • / illustration / digital-illustration
    • /插图/绘图
  2. / parent_category_title ->返回(数字插图和绘图

  3. 类别中的所有课程

任何想法都可以实现吗?有文档参考吗?

0 个答案:

没有答案