Ajax不从render_to_response获取HTML数据

时间:2014-12-06 17:45:47

标签: jquery ajax django

我对我的代码非常困惑。这是ajax:

<script type="text/javascript">
    jQuery(document).ready(function() {
        $("#search-filter").click(function (evt) {
            evt.preventDefault();
            q=$('#q').val();
            q_fields=$('#q-fields').attr('value');
            $.ajax({
                type: 'GET',
                url: $(this).attr("href"),
                data: {'q': q, 'q_fields': q_fields},
                success: function(data) {
                    var returned_html = $(data);
                    alert(returned_html);
                }
            })
        });
    });
</script>

我的视图返回一个我可以打印的HTML。这是预期的。

if self.request.is_ajax():
    return render_to_response(self.obj_template, {'object_list': res}, context_instance=RequestContext(self.request))

我无法在我的var returns_html中获得回报。我应该错过一些东西。但是什么?萤火虫的反应是类型&#39; HttpResponse&#39;没有len()。

编辑:

这是模板:self.obj_template我用来构建我的HTML。

{% for object in object_list %}
    <li>object.name</li>
{% endfor %}

打印返回我的观点我想要检索:

print render_to_response(self.obj_template, {'object_list': res}, context_instance=RequestContext(self.request))


<tr class="clickableRow" href="/contacts/1054/">
    <td>ABBA</td>
    <td>toto</td>
    <td>auie@auienrtsi.fr</td>
    <td>CAM SA</td>
</tr>

<tr class="clickableRow" href="/contacts/1045/">
    <td>toto</td>
    <td>toto</td>
    <td></td>
    <td>None</td>
</tr>

2 个答案:

答案 0 :(得分:0)

这是你的js错了,试试这个:

var returned_html = data;

答案 1 :(得分:0)

我提供的关于这个主题的信息太少没有帮助,我很抱歉。我的错误在于使用CBV来响应格式化HTML而不考虑CBV渲染整页。所以我不得不在CBV之外调用一个函数来返回预期的确切代码。