我是 Django 的新手,我正在制作一个有 10x10 板的游戏,如果点击它,它将被标记为“X”。在我的一个模型上,我有一个属性来存储每个板单元的值,并且它们默认设置为空白。我可以用jquery标记板。但是,我想将数据发送到服务器端,让它知道我单击的单元格已被标记。这样,当我退出游戏并稍后重新访问时,棋盘将显示带有“X”的标记单元格。
这是嵌入在我的 HTML 页面中的 jquery 代码:
<script>
$(document).ready(function(){
$('.target_cell').click(function(){
if ($(this).text() != "X" && $(this).text() != "H"){
$(this).text("X");
var spot = $(this).attr('name'); //Cell index number like in an array
$.post("/play_game/{{game.id}}/", spot);
}
else{
alert("Spot already taken!");
}
});
});
</script>
这是我的 jquery .post 方法正在访问的视图的代码:
def play_game(request, game_id):
game = fetch_game(request.user, game_id)
if request.method == 'POST':
spot = request.POST['spot']
game.creator_target_board[int(spot)] = "X"
variables = RequestContext(request, {
'game': game,
'set_board': game.creator_ship_board,
'target_board': game.creator_target_board
})
return render_to_response('battleship/play_game.html', variables)
我目前在我的视图上使用 csrf_exempt 只是为了测试。当我单击我的板单元时,它被标记为“X”,但我的服务器日志显示 500 错误。有想法该怎么解决这个吗?提前致谢!