Returning Rendered Html via Ajax

前端 未结 3 1767
感情败类
感情败类 2020-12-08 04:57

I am trying to return html via and Ajax call and I have the following snippet of code in my view

if request.is_ajax(): 
t = loader.get_template(\'frontend/sc         


        
3条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-08 05:44

    There are a few issues with your code:

    You need to use render_to_string.

    You also don't need to convert your HTML into json because you are replacing the contents directly.

    Putting all this together you have:

    from django.template.loader import render_to_string
    from django.http import HttpResponse
    
    if request.is_ajax():
        html = render_to_string('frontend/scroll.html', {'dishes': dishes})
        return HttpResponse(html)
    

    In your front end, you need:

    $.ajax({
            type: "POST",
            url: "/filter_home", 
            data: {'name': 'me', 'csrfmiddlewaretoken': '{{ csrf_token }}'},
            success : function(data) {
                 $('.row.replace').html(data);
             }
    });
    

提交回复
热议问题