単純な関数で作成されたという python 辞書のリストがありcheckout_items
ます (読みやすくするために、ここではさらに簡略化しています)。
def checkout_items(request):
items = get_cart_items(request)
co_items = [] #a list of dictionaries to be used by the cart
#iterate through the items and homogenize them into a standardized checkout_item format
for i in items:
co_item = {'number': num,
'name': i.name,
'sku': i.sku,
'quantity': i.quantity,
'price': i.price}
ビューの別の場所でこのリストを参照します (ここでも簡略化しています)。
checkout_items = cart.checkout_items(request)
attributes = {}
for i in checkout_items:
attributes['item_name_'+ str(i['number'])] = str(i['name'])
attributes['item_number_'+ str(i['number'])] = str(i['sku'])
attributes['quantity_'+ str(i['number'])] = str(i['quantity'])
ただし、 name 変数は次のように設定されています。<bound method CartItem.name of <CartItem: CartItem object>
それでも、sku (「名前」のような英数字の文字列) は問題なく表示されるようです。どちらも MySQL から直接取得されます。何が起こっているのですか?