django template 부분 렌더링

GisangLee·2022년 3월 28일
0

my_module

목록 보기
9/33

Ajax로 전체 html을 렌더링 하는 것이 아니라

부분을 렌더링 하고 싶을 때가 굉장히 많다.

이 때, 사용할 수 있는 부분 렌더링 기술을 소개한다.


- my ajax view
def ajax_view(request):
    context = {
    	"my_data": my_data
    }
    return render(request, 'table_body.html', context=context)
  • main html
<tbody class="table_body">
   {% include 'table_body.html' %}
</tbody>
  • table_body html
{% for item in my_data %}
  <tr>
     <td colspan="2">{{ item.date }}</td>
     <td id="item_name_format" colspan="6">{{ item.name }}</td>
     {% if item.category_id %}
      <td id="item_name_format" colspan="2">{{ item.category_id.level1_desc }}</td>
     {% endif %}
      <td id="item_amt_format" colspan="2">${{ item.amount|intcomma }}</td>
  </tr>
{% endfor %}
  • ajax js code
function update_item(data) {
    console.log(item_num) // sanity check
    $('.table_body').html('').load(
       //"{% url 'update_items' %}?item_num=" + item_num
      //or
      "127.0.0.1:8000/url?data=" + data
    ); // <--- this code instead of $.ajax(lala)

이렇게 부분 렌더링을 하고 싶은 html을 분리.
분리 시킨 html을 렌더링 하는 view를 작성.
load() 메서드 호출하면 부분 렌더링을 할 수 있다.

profile
포폴 및 이력서 : https://gisanglee.github.io/web-porfolio/

0개의 댓글