1

我正在尝试使用新信息更新列,但出现错误:“'instancemethod' 对象不可迭代”,我不知道为什么。

调用此函数时发生错误:

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'>

调用该all()方法时将返回一个iterable对象,即 Django QuerySet

于 2013-07-05T15:54:06.687 回答