Jquery 使用AJAX执行Python Django脚本

Jquery 使用AJAX执行Python Django脚本,jquery,python,ajax,django,Jquery,Python,Ajax,Django,我正在使用Django作为我的网站。目前我正在使用location.reload;因此,当用户填写数据并单击按钮时,它将触发location.reload,当整个页面重新加载时,它将执行Django脚本。但我不想重新加载整个页面来执行脚本,我只想使用ajax重新加载特定页面。我该怎么做 {% if userFirstName %} <div id="topAdminCont" class="left"> <

我正在使用Django作为我的网站。目前我正在使用location.reload;因此,当用户填写数据并单击按钮时,它将触发location.reload,当整个页面重新加载时,它将执行Django脚本。但我不想重新加载整个页面来执行脚本,我只想使用ajax重新加载特定页面。我该怎么做

{% if userFirstName %}
                <div id="topAdminCont" class="left">
                    <div id="userSection">
                <!--        <img src="{% static "assets/images/admin_icon.png" %}" width="20" alt="Admin" class="left" /> -->
                        <p id="admin" class="right">{{userFirstName}}</p>
                        <div class="clear"></div>
                    </div>
                    <ul id="dropAdmin">
                        <li><a href="#" id="chngPwdBut">Change Password</a></li>
                        <li><a href="/authentication/logout">Logout</a></li>
                    </ul>
                </div>
            {% else %} 

                <div id="popCont" class="left username_view">
                    <p id="signIn"><a href="#">Signin</a></p>
                    <p>/</p>
                    <p id="signUp"><a href="#">Signup</a></p>
                    <div class="clear"></div>
                </div>
            {% endif %}
第一份。。。到它自己的文件中。比方说

top_admin.html

views.py

最后是您的ajax请求

$.ajax({
    ...
    success: function(response) {
        if (response.statusCode == 200) {
            $('#topAdminCont').load('/app_name/top_admin/');
        }
    },
    ...
显然,有很多特定的名称、URL等,您必须更改以匹配您的应用程序,但是,此方法将允许您在不重新加载整个页面的情况下重新加载页面上的内容。

第一份副本。。。到它自己的文件中。比方说

top_admin.html

views.py

最后是您的ajax请求

$.ajax({
    ...
    success: function(response) {
        if (response.statusCode == 200) {
            $('#topAdminCont').load('/app_name/top_admin/');
        }
    },
    ...

显然,有很多特定的名称、URL等,您必须更改以匹配您的应用程序,但是,此方法允许您在页面上重新加载内容,而无需重新加载整个页面。

将AJAX调用的成功部分修改为:

success:function(response){ 
    statusCode = response.statusCode;
    if (statusCode == 200)
    {
        $('#ajaxSection').html(response); #assuming that the response is a HTML
    }
}

将AJAX调用的成功部分修改为:

success:function(response){ 
    statusCode = response.statusCode;
    if (statusCode == 200)
    {
        $('#ajaxSection').html(response); #assuming that the response is a HTML
    }
}

location.reload将很好地重新加载位置,而不仅仅是页面上的一些内容。你想刷新哪个?不。我只想一次又一次地重新加载上面的HTML部分。我们可以使用AJAX来完成这项工作,对吗?这个代码段的父id是什么?说,请检查上面我已经添加了AJAX Jquery Handlerlocation。重新加载将重新加载位置,而不仅仅是页面上的一些内容。你想刷新哪个?不。我只想一次又一次地重新加载上面的HTML部分。我们可以使用AJAX来完成这项工作,对吗?这个代码段的父id是什么?说请检查上面我添加了AJAX Jquery HandlerIs。是否将冗余加载到.AJAX?请参阅下面的@warunsl答案。加载到.ajax不是多余的吗?请参阅下面的@warunsl答案。
def top_admin(request):
    // your stuff here

    return render(request, 'top_admin.html', {
        // call admin object variables here
    })
$.ajax({
    ...
    success: function(response) {
        if (response.statusCode == 200) {
            $('#topAdminCont').load('/app_name/top_admin/');
        }
    },
    ...
success:function(response){ 
    statusCode = response.statusCode;
    if (statusCode == 200)
    {
        $('#ajaxSection').html(response); #assuming that the response is a HTML
    }
}