1

我正在制作我的第一个 Django 应用程序并且遇到了一些 AJAX 问题。在我的网站上,用户可以看到照片库。要访问此页面,他们只需要转到 /photos。照片视图计算要显示的照片并将它们传递给模板进行渲染。

他们可以通过单击按钮请求查看更多照片。单击此按钮会向服务器发送 AJAX 请求。服务器计算要显示的一组新照片,然后再次将照片传递给相同的模板进行显示。唯一的问题是屏幕上的照片永远不会改变。

我验证了服务器正在计算新照片。不幸的是,很多应该发生的事情实际上并没有发生。首先,使用 Chrome 开发人员工具,我可以看到照片文件从未从服务器发送到浏览器。此外,DOM 永远不会更新 src 属性来引用新照片。我需要做什么才能让这些事情发生?

谢谢你。

编辑:

一些代码:

#The python view summarized
def photos:
    photoList = GetListOfPhotos() #Returns photo objects.  These objects have a file field which is access from the template.
        return render(request,
              'photos.html', 
             {'photoList': photoList}, 
              context_instance=RequestContext(request)
             )

#AJAX request
$(document).ready(function(){
    $("#right-arrow").click(function(event) {
        $.post("/photos/", {"arrow" : "right"
        });
    });
});
4

1 回答 1

0

对我来说最可疑的是你说

再次将照片传递到相同的模板进行显示。

/photo这是您的网址对应的完全相同的模板吗?如果是这样,您可能应该使用它的一小部分来渲染列表或表格中的照片(或者无论您如何显示它们)除此之外,还有一些事情可以帮助解决这个问题。

  1. 在 chrome 开发人员工具中,确保您的 javascript 正在发送正确的数据。这可以通过在 net 选项卡中验证您的参数以及自由使用控制台日志来完成;

  2. 验证您的视图是否确实在做它应该做的事情。我喜欢pdb。这是完美的。您可以编写测试,或制作打印语句或 w/e。

  3. 验证您的前端是否正在接收数据。Chrome 工具可以帮助您做到这一点。网络选项卡将让您看到响应。

我想更具体,但你没有提供具体细节。

为了提供更好的答案,发布所有相关代码很重要。

于 2012-09-11T00:04:53.537 回答