更新查询集

时间:2013-07-05 15:53:09

标签: django

我正在尝试使用新信息更新列,但我收到错误:“'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来说比较新,我是不是错了?

1 个答案:

答案 0 :(得分:3)

只是一个小错字,你错过了函数调用:

tests = Stock.objects.all()

如果你在交互式shell中徘徊,你可以看到:

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

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