AJAX pos后未重新加载Django模板

2024-04-19 04:08:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作我的第一个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"
        });
    });
});

Tags: djangoright服务器模板objectsrequestajaxfunction
1条回答
网友
1楼 · 发布于 2024-04-19 04:08:27

我最怀疑的是你说

once again passes the photos to the same template for display.

这是您的/photourl对应的模板吗?如果是这样的话,你可能应该使用它的一小部分来渲染列表或表格中的照片(或以何种方式显示它们),而不是有一些事情可以帮助解决这个问题。在

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

  2. 验证您的视图实际上正在做它应该做的事情。我喜欢pdb。这是完美的。您可以编写测试,或打印报表或w/e。

  3. 验证您的前端正在接收数据。Chrome工具可以帮助你做到这一点。net选项卡将允许您查看响应。

我想说得更具体一些,但你没有提供具体细节。在

为了帮助获得更好的答案,发布所有相关代码非常重要。在

相关问题 更多 >