加载html而不是div Django

时间:2013-08-12 14:13:59

标签: javascript python ajax django django-models

的javascript:

$('.openDiv').click(function () {
    var id = $(this).attr('id');
    var csrf_token = $("#csrf_token").val();
    $.ajax({
        data: {
            csrfmiddlewaretoken: ('{{csrf_token}}'),
            id: id,
        },
        type: 'POST',
        url: '/setting/save-reporter/',
        success: function () {
            $('#authorisedreporter').load('save_reporter.html');
        }
    });
});

的index.html

<div id="authorisedreporter" {% if not registerform.errors %}style="display:none"{% endif %}>
   <form method="post" action="." id="reporter-form">
   {% csrf_token %}
      <table  width="100%">
         """"""""
      </table></form></div> 

save_reporter.html

<form method="post" action="." id="{{ id }}">
    {% csrf_token %}
    <table  width="100%">
    """""""""
    </table></form>

我正在使用ajax和js,在成功调用ajax之后,div被save_reporter.html替换。但是我在控制台中找不到404页面错误。如果我没有使用$('#authorisedreporter').load('save_reporter.html');,我会得到控制台中所需的输出。虽然试图在模板中显示输出,但我得到了错误。需要帮助。

1 个答案:

答案 0 :(得分:1)

您无法使用jQuery load函数从Django加载模板。模板不是独立的HTML页面:正如您从编写其他视图时所知,您需要编写URL和视图来呈现模板并将其返回。

您应该做的是让/setting/save-reporter/视图返回呈现的模板,然后通过.html()将结果插入您的div:

success: function(response) {
    $('#authorisedreporter').html(response);