排序和删除 SQLALCHEMY 和烧瓶中的一对多关系

Sorting and Deleting a 1-to-Many relatiionship in SQLALCHEMY and flask

我正在处理一个使用一对多关系的 CRUD flask 项目。最终结果如下所示,Flask Webform. However when I submit the form for the Update route, it returns to the home page and displays this. Webform After Update.

这是我的 DB model

def 更新(id):

frank = Frankendama.query.get(id)
form = FrankForm()

if form.validate_on_submit():
    
    frank.title=form.title.data
    frank.description=form.description.data
    frank.tama=form.tama.data
    frank.sarado=form.sarado.data
    frank.sword=form.sword.data
    frank.string=form.string.data
    frank.bearing=form.bearing.data
            
    db.session.add(frank)  
    db.session.commit()

    comps = form.companies.data
    comps_used = comps.split(",")

    all_comps = Company.query.all().filter_by(Company.frankendama_id == id) #Error here

    for entry in all_comps:
        if entry.frankendama_id == id:
            db.session.delete(entry)

    for i in range(0, len(comps_used)):

        new_entry = comps_used[i]
        new_comp = Company(name=new_entry, frankendama_id=id)

        db.session.add(new_comp)
        db.session.commit()

    return redirect(url_for("home"))

else:

    return render_template("create.html", form=form)

我正在尝试查找公司 table 的查询,该查询使用与主 tables id 相同的外键 'frankendama_id' 对所有行进行排序。这样我就可以删除它们,然后重新添加它们。

当我尝试使用 filter() 或 filter_by() 时,出现错误 AttributeError: 'list' object has no attribute 'filter_by'

实在是太难了,欢迎指教!谢谢

将filter_by移到.all()

前面
all_comps = Company.query.filter_by(frankendama_id = id).all()

编辑 1: 您也可以在使用 filter_by 时删除 'Company.' 并且您只需要一个等号