模型对象未在Django模板页面中列出?

时间:2013-01-15 20:47:50

标签: python django

我有一个模板页面,它迭代我的模型的对象并列出它们中的每一个。我的模板名为user_page.html,这是列出项目的代码:

<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 个答案:

答案 0 :(得分:0)

尝试返回您的回复:

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

看看是否有所作为。

答案 1 :(得分:0)

解决了这个问题。原来问题是URLS.py映射。显然,我的user_page.html已经有一个名为user_page的函数映射到它。我只需要将list_games函数代码放在user_page函数中。傻我。谢谢大家:)

相关问题