【发布时间】:2015-11-24 03:42:39
【问题描述】:
我正在尝试用 Django 和 Ajax 做一些简单的事情。
我的目标是做一个大厅网站,每个客户都知道大厅里每个人的名字。
我这样做的方式(请耐心等待,即使这是您听说过的最糟糕的方法)是让客户每秒发送一条消息,上面写着“我还在这里!”。如果服务器在 5 秒内没有来自客户端,则该客户端将从大厅中的人员列表中删除。我有这个工作。
我不知道如何将 Django 视图中的玩家姓名列表发送回客户端。我一直在尝试使用 JsonResponse,然后在 $.ajax() 调用的成功函数中接收它,但我似乎无法让它工作。
这是我的$.ajax() 电话:
$.ajax({
url: apiUpdateUrl,
method: "post",
data: {
csrfmiddlewaretoken: Cookies.get("csrftoken")
},
dataType: "json",
success: function(data) {
console.log(data.player_list)
}
});
这是我的 Django 视图:
def update(request):
if Player.objects.filter(nickname=request.user.username).count() == 0:
player = Player(nickname=request.user.username, time_joined=datetime.datetime.now())
player.save()
else:
player = Player.objects.get(nickname=request.user.username)
player.save()
curr_time = datetime.datetime.now()
for player in Player.objects.all():
if (curr_time - player.last_update).total_seconds() >= 5:
Player.objects.filter(pk=player.pk).delete()
player_list = [p.nickname for p in Player.objects.all()]
print(player_list)
return JsonResponse({"player_list": player_list})
【问题讨论】:
-
请发布您的代码! :)
-
@kittykittybangbang 我贴出来了
-
你在
data中得到了什么?试试console.log(data)? -
没关系,它有效!