代码之家  ›  专栏  ›  技术社区  ›  Samir Tendulkar

从queryset获取值Getting TypeError:“method”对象不可订阅

  •  0
  • Samir Tendulkar  · 技术社区  · 7 年前

    我知道这是一个非常简单的问题,但我正在打 TypeError: 'method' object is not subscriptable 我所做的一切。我要去拿那个 ratings 对于 item . 我怎么得到它

    >>> for item in order_items:
    ...     if item.reviewed_items.exists():
    ...             print( item.reviewed_items.values())
    ... 
    <QuerySet [{'
    id': 1, 
    'review_from_id': 5, 
    'review_for_id': 1,
    'ratings': '8'}]>
    >>> 
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   JPG    7 年前

    尝试 dict comprehension 作为,

    for item in order_items:
        if item.reviewed_items.exists():
            print({data['id']: data['ratings'] for data in list(item.reviewed_items.values())})



    使用 values_list() 方法as,

    for item in order_items:
        if item.reviewed_items.exists():
            print(item.reviewed_items.values_list('ratings', flat=True))