django html extends 하여 재사용 하는 방법 질문드립니다.

조회수 454회

view에서 render로 호출할 페이지는 다음과 같습니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
          integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <!--    <link rel="stylesheet" href="/static/bootstrap.css">-->
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
            integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
            crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"
            integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN"
            crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"
            integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV"
            crossorigin="anonymous"></script>
    <!-- Google Chart -->
    <script src="https://www.gstatic.com/charts/loader.js"></script>

    <!-- d3 Chart -->
    <script src="https://d3js.org/d3.v6.min.js"></script>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
    <a class="navbar-brand" href="#">VMS</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup"
            aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
        <div class="navbar-nav">
            <a class="nav-item nav-link active" href="#">자산 현황<span class="sr-only">(current)</span></a>
            <a class="nav-item nav-link" href="#">item1</a>
            <a class="nav-item nav-link" href="#">item2</a>
            <a class="nav-item nav-link disabled" href="#">item3</a>
        </div>
    </div>
</nav>
<div class="container">
    {% extends "graph/lineChart.html" %}
    {% block contents %}
    {% endblock %}
</div>
</body>
<script type="text/javascript">
    {% block scripts %}
    {% endblock %}
</script>
</html>

그리고 graph/lineChart.html 의 내용은 다음과 같습니다.

{% block contents %}
<div id="myPieChart"></div>
<div style="background:blue; width:100%; height:300px">tTESTSETSETSETSET</div>
<script>
    google.charts.load('43', {packages: ['corechart']});
    google.charts.setOnLoadCallback(drawChart);
    function drawChart() {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Element');
        data.addColumn('number', 'Percentage');
        data.addRows([
        ['Nitrogen', 0.78],
        ['Oxygen', 0.21],
        ['Other', 0.01]
        ]);

        // Instantiate and draw the chart.
        var chart = new google.visualization.PieChart(document.getElementById('myPieChart'));
        chart.draw(data, null);
    }
</script>
{% endblock %}

lineChart.html의 내용을 {% block %} 없이 제 자리에 사용하면 정상적으로 작동합니다. 내용은 원형 그래프를 그려주는 코드입니다. 원형 그래프 코드에 데이터만 변경해가면서 다른 페이지에 extends해서 사용하고 싶은데 왜 안 될까요...? 제가 첨부한 코드에는 무슨 원인이 있을까요?

  • extends 를 linechart.html 쪽에 넣고 위쪽 html 를 호출하면 위쪽html 에 block contents 에 linechart.html 이 나올거고 view render 할때 linechart.html를 호출하면서 파라미터 넣어주면될겁니다. 김호원 2020.9.24 17:14
  • 제가 원하던게 include 였네요... 감사합니다.. 김재민 2020.9.25 10:44

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)