1

新しい情報で列を更新しようとしていますが、「'instancemethod' object is not iterable」というエラーが表示され、その理由がわかりません。

この関数が呼び出されると、エラーが発生します。

def update():
tests = Stock.objects.all
for test in tests:
    tick = test.ticker
    mo2 = get_dividend_per_share(tick)
    moy = get_dividend_yield(tick)
    mo3 = 1 * (Decimal(moy) / 100)
    mop = get_price_earnings_growth_ratio(tick)
    mod = Stock(price=mo, divps=mo2, divpd=mo3, peg=mop)
    mod.save()

私は Django に比較的慣れていませんが、これはすべて間違っていますか?

4

1 に答える 1

3

ちょっとしたタイプミスで、関数呼び出しを見逃しました:

tests = Stock.objects.all()

対話型シェルをいじると、次のことがわかります。

>>> type(Stock.objects.all)
<type 'instancemethod'>

メソッドを呼び出すと、オブジェクト、つまり Djangoall()が返されます。iterableQuerySet

于 2013-07-05T15:54:06.687 に答える