0

モデルのオブジェクトを繰り返し処理し、それぞれをリストするテンプレート ページがあります。私のテンプレートは 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() と入力すると表示されるため、Game オブジェクトがあることがわかります。これまでのところ、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

何か案は?前もって感謝します!

4

2 に答える 2

0

次のように応答を返してみてください。

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

それが違いを生むかどうかを確認してください。

于 2013-01-15T21:43:19.943 に答える
0

問題を解決しました。問題は URLS.py マッピングであることが判明しました。どうやら、私の user_page.html にはすでに user_page という関数がマップされていました。list_games 関数コードを user_page 関数内に配置する必要がありました。愚かな私。とにかくみんなありがとう:)

于 2013-01-16T01:13:34.980 に答える