2010-03-04 45 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

相關問題