2009-12-08 54 views
0

我討厭在這裏問,但我很難過,所以在irc的傢伙也是如此。在我的Django視圖/模板中,這個循環有什麼問題?

該模板不顯示我嘗試顯示的列表的內容。

單獨顯示{{bet}}也沒有值。我錯過了什麼?

模板:

{% for bet in bets %} 
<tr> 
    <td><div>{{ bet.game_num }}</div></td> 
    <td><div>{{ bet.home_team }}</div></td> 
    <td><div>{{ bet.home_odds }}</div></td> 
    <td><div id="home-odds-checkbox"><input type="checkbox"></div></td> 
    <td><div>{{ bet.visiting_team }}</div></td> 
    <td><div>{{ bet.visiting_odds }}</div></td> 
    <td><div id="visiting-odds-checkbox"><input type="checkbox"></div></td> 
    <td><div>{{ bet.tie_odds }}</div></td> 
    <td><div id="tie-odds-checkbox"><input type="checkbox"></div></td> 
</tr> 
{% endfor %} 

檢視:

'賭注':[[1,5,U '',U '',1.0

def choose_bets(request): 
    # Should be a post to get to this page 
    num_games = int(request.POST['games']) + 1 

    # Fill BetData with teams and odds 
    bets = [] 
    for x in range(1, num_games): 
     try: 
      league_id = int(request.POST[str(x) + '-league']) 
      game_num = int(request.POST[str(x) + '-game_num']) 
      home_team = request.POST[str(x) + '-home_team'] 
      visiting_team = request.POST[str(x) + '-visiting_team'] 
      home_odds = float(request.POST[str(x) + '-home_odds']) 
      visiting_odds = float(request.POST[str(x) + '-visiting_odds']) 
      tie_odds = float(request.POST[str(x) + '-tie_odds']) 
      skip_game = False 

     except ValueError: 
      league_id,game_num,home_odds,visiting_odds,tie_odds = 0,0,0,0,0 # bad fix 
      home_team,visiting_team = '','' 
      skip_game = True # Do not include entry in calculation 

     finally: 
      bets.append([game_num, league_id, home_team, visiting_team, home_odds, visiting_odds, tie_odds, skip_game]) 

    return render_to_response('choose_bets.html', locals(), context_instance=RequestContext(request)) 

賭注可變的語境,1.0,3.0],[2,4,u「,u」,2.0,2.0,43555.0],[3,3,u「,u」,3.0,3.0,5.0]]

回答

4

模板指的是命名字段中bet什麼時候看到的,但你在通過陣列。

要麼改變你的appendchoose_bets這樣的:

bets.append(dict(game_num=game_num, league_id=league_id, home_team=home_team, visiting_team=visiting_team, home_odds=home_odds, visiting_odds=visiting_odds, tie_odds=tie_odds, skip_game=skip_game)) 

所以,你現在有一個鍵的dict你可以參考的,是從您的模板。 。

或者......改變使用您傳遞的陣列模板例如,而不是:

<td><div>{{ bet.game_num }}</div></td> 

用途:

<td><div>{{ bet.0 }}</div></td> 
+0

馬克斯,我欠你一個人情。感謝您爲我發現。 – 2009-12-08 01:27:26

+0

嗚!我的第一個SO回答:) – Max 2009-12-08 01:28:35

+0

不錯的回答如果你縮進4個空格(當添加或編輯時選擇你的代碼並點擊Ctrl-K,或者選擇它並點擊0101按鈕,或者縮進它4手動空格)。使用反引號(')可以使內聯代碼看起來像代碼。我已經爲你編輯這篇文章。歡迎來到stackoverflow! – 2009-12-08 08:47:48

0

你爲什麼不嘗試傳遞每個變量,通過明確地一個接一個,在它停止工作,而不是用當地人