2013-01-15 167 views
0

我有一個模板頁面,它遍歷我的模型對象並列出它們中的每一個。我的模板名爲user_page.html和這裏的列出的項目代碼:模型對象沒有在Django模板頁面中列出?

<h3>List of your games</h3> 
{% if games %} 
    <ul> 
    {% for i in games %} 
     <li>Game</li> 
    {% endfor %} 
    </ul> 
{% else %} 
    You have no games. 
{% endif %} 

我不斷收到的消息「你有沒有比賽」每當我訪問user_page.html,但我知道我的遊戲對象,因爲我看到他們當我在控制檯中輸入Game.objects.all()。到目前爲止,這裏有我的views.py我有代碼:

@login_required 
def create_game(request): 
    game = Game(creator=request.user) 
    game.save() 
    variables = RequestContext(request, { 
     'game': game, 
     'board': game.get_set_board() 
    }) 
    return render_to_response('battleship/create_game.html', variables) 

@login_required 
def list_games(request): 
    games_list = Game.objects.get_by_user(request.user) 
    variables = RequestContext(request, { 
     'games': games_list 
    }) 
    return render_to_response('battleship/user_page.html', variables) 

這裏是我的遊戲模型的代碼:

class Game(models.Model): 
    creator = models.ForeignKey(User, related_name='creator_set') 
    def get_set_board(self): 
     board = Board() 
     return board 
    def get_target_board(self): 
     board = Board() 
     return board 

任何想法?提前致謝!

+2

你確定Game.objects.get_by_user(request.user)返回一個非空的查詢集? –

+0

我不確定。我嘗試在我的list_games函數中使用Game.objects.all()進行測試,但即使這樣也行不通,我仍然在「你沒有遊戲」。 – dexx1220

回答

0

,請返回你的迴應,像這樣:

return render_to_response('battleship/user_page.html', {'games' : games_list}, context_instance=RequestContext(request)) 

看看是否有差別。

+0

我不明白這將如何改變。是什麼讓你提出這個建議?你在質疑一個核心的django組件,如果這個組件被破壞,會破壞成千上萬的人的實現。 –

0

解決了這個問題。原來問題是URLS.py映射。顯然,我的user_page.html已經有一個名爲user_page的函數映射到它。我只需要將list_games函數代碼放入user_page函數中。傻我。謝謝反正大家:)