Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django中使用AJAX进行页面切换_Python_Django_Pjax - Fatal编程技术网

Python 在Django中使用AJAX进行页面切换

Python 在Django中使用AJAX进行页面切换,python,django,pjax,Python,Django,Pjax,我正在尝试使用AJAX创建站点导航。我有导航菜单,带有指向不同视图的链接(在模板中使用{%url name%})。我正在尝试使用AJAX加载页面内容。我试图加载的页面内容包含在内容块中({%block content%}) 我还发现了这个片段,但是我想使用我已经定义的视图,并且只使用ajax获取内容 有什么建议吗?你应该使用专门为这种事情设计的 您所要做的就是,在基本模板中,根据请求是否为ajax,包含整个页面或仅包含块内容 django pjax使用jQuery进行AJAX调用,并使用HTML

我正在尝试使用AJAX创建站点导航。我有导航菜单,带有指向不同视图的链接(在模板中使用
{%url name%}
)。我正在尝试使用AJAX加载页面内容。我试图加载的页面内容包含在内容块中(
{%block content%}

我还发现了这个片段,但是我想使用我已经定义的视图,并且只使用ajax获取内容

有什么建议吗?

你应该使用专门为这种事情设计的

您所要做的就是,在基本模板中,根据请求是否为ajax,包含整个页面或仅包含
块内容


django pjax使用jQuery进行AJAX调用,并使用HTML5推送状态API处理历史记录,这是一种非常好的方法,在IE旧版本中也会优雅地降级。

{%block content%}
这样的模板标记在AJAX看到东西时早已不复存在了。您要做的是在内容块中创建一个命名的
,如:

{% block content %}
<div id="content"></div>
{% endblock content %}

其中,
url
是要加载的url(返回HTML),
data
是表单数据(如果有;可以省略),
loadComplete
是加载数据时要调用的可选函数,其形式为
函数loadComplete(responseText,textStatus,XMLHttpRequest){…}
。即使您不想使用jQuery,也可以获取非精简的jQuery源代码,看看它们是如何实现的。

我知道它已经不存在了,我有一个与您建议的类似的div。我想在这里做的事情是使用已经定义的视图(在没有ajax请求的情况下使用)然后创建一些响应,只返回名为content的块的内容,这样我就可以用javascript处理它并替换div的内容。如果它也可以用于Django 1.2,那就太好了。你用Django pjax解决了吗?基本上我解决了。(对原始脚本进行少量更改,以允许我在一个请求中更新多个HTML元素)
$("#content").load(url, data, loadComplete);