2010-03-04 42 views
1

我有这样的代码:Django的查询在一个循环中失败没有很好的理由

msgs = int(post['time_in_weeks']) 
for i in range(msgs): 
    tip_msg = Tip.objects.get(week_number=i) 

它总是会导致一个错误,指出没有值可以找到。

WEEK_NUMBER是整数字段。当我直接输入我的值时, 查询起作用。

当我打印出我的价值,我得到的预期值。

任何投入都将受到严重的赞赏。

谢谢。

+0

这不起作用或者: tip_msg =提示.objects.filter(类别= 2).order_by( “WEEK_NUMBER”)[I] 及其仿佛Django的对待i设定为即使当我使用int(i)非整数这仍然会失败。 – user170302 2010-03-04 01:31:51

回答

1

range功能会给你数最多和排除msgs从零开始的列表。我想没有提示week_number=0

+0

周末号= 0有一个提示。 – user170302 2010-03-04 01:25:20

+0

即使我使用i + 1而不是我仍然有同样的问题。最终试图为tip_msg获得一个独特的价值。这一切都在GAE上通过django non_rel运行:http://bitbucket.org/wkornewald/django-nonrel/wiki/Home所有其他查询仍然有效。 – user170302 2010-03-04 01:29:05

1

此外,为了限制你能做到这一点的查询数量:

for tip in Tip.objects.filter(week_number__lt=msgs): 
    #do something 

,或者,如果你想具体周:

weeks=(1,3,5) 
for tip in Tip.objects.filter(week_number__in=weeks): 
    #do something 
+0

感谢!它是我甚至没有想到的更好的方式。 – user170302 2010-03-05 11:06:41

相关问题