我正在尝试使用新信息更新列,但我收到错误:“'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来说比较新,我是不是错了?
答案 0 :(得分:3)
只是一个小错字,你错过了函数调用:
tests = Stock.objects.all()
如果你在交互式shell中徘徊,你可以看到:
>>> type(Stock.objects.all)
<type 'instancemethod'>
在调用all()
方法时会返回一个iterable
对象,即Django QuerySet
。