繁体   English   中英

Flask-SQLalchemy AttributeError: 'NoneType' object 没有属性 ""

[英]Flask-SQLalchemy AttributeError: 'NoneType' object has no attribute ""

我正在尝试查询几个表,并使用 for 循环向查询添加过滤器。

new_list = []
query = {
    "search_word": "Home",
    "exact": False,
    "tags": ["N"],
    "next_words": [
        {"pos": 1, "tags": ["verb"]},
        {"pos": 2, "tags": ["anim"]}
    ]
}

if query["search_word"]:
    if query["exact"]:
        db_query = Cases.query.filter(Cases.gramatical_case == query["search_word"])
    else:
        db_query = Cases.query.filter(Cases.gramatical_case.ilike(f'%' + query["search_word"] + '%'))

    for tag in query["tags"]:
        db_query = db_query.filter(Cases.grammer.contains(tag))

    for words in query["next_words"]:
        tagging = words['tags']  # list of values
        for rg in tagging:
            db_query = db_query.filter(Cases.pos.contains(rg))

    filter2=Case_Sentences.query.with_entities(Case_Sentences.st_id).filter_by(gc_id=db_query.first().gc_id).all()
    for r in filter2:
        new_list.append(r.st_id)

    filter3 = Sentences.query.filter(Sentences.sn_id.in_(new_list)).paginate(per_page=12,page=page_num,error_out=False)

目标是,使用 for 循环添加过滤器来查询,最后调用它并获取所有内容。

我得到的错误:

filter2=Case_Sentences.query.with_entities(Case_Sentences.st_id).filter_by(gc_id=db_query.first().gc_id).all()

AttributeError: 'NoneType' object has no attribute 'gc_id'

为什么我会收到此错误消息,即使一切似乎都是正确的

问题出在:

for words in query["next_words"]:
        tagging = words['tags']  # list of values
        for rg in tagging:
            db_query = db_query.filter(Cases.pos.contains(rg))

此查询返回 Empty Object 是有原因的,此处执行的查询是错误的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM