Django テンプレート継承

base.htmlを継承してコード量を減らす

やっとテンプレート継承の恩恵を受けられた!

base.htmlには普通にHTMLタグを書く bodyタグの中は空っぽ

<!DOCTYPE html>  
{% load static %}  
{% load bootstrap4 %}  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>TITLE</title>  
    <link rel="stylesheet" href="../../static/redo/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">  
</head>  
<body>  
  <div class="container">  
    {% block content %}{% endblock %}  
  </div>  
</body>  
</html>  

継承したテンプレートはHTMLタグを省略できる
(base.htmlの{% block content %}~{% endblock %}に挿入する部分だけ記述でOK)

{% extends "redo/base.html" %}  
{% load bootstrap4 %}  
{% block title %}類語検索{% endblock %}  

{% block content %}  
    <p>メッセージを入力してください</p>  
    <form action="{% url 'redo:register_message' %}" method="post">{% csrf_token %}  
        {% bootstrap_form form layout='horizontal' %}  
        <div class="form-group row">  
            <div class="offset-md-3 col-md-9">  
                <button type="submit" class="btn btn-outline-primary">submit</button>  
            </div>  
        </div>  
    </form>  
    {{ message }}  
{% endblock %}  

継承したテンプレートに記述した入力フォームが表示された!

画面に何も表示されない時は

継承元テンプレート(base.html)と継承するテンプレートで使っているタグ名が違っているはず!
(継承元:{% block content %} 継承先:{% block contents %}など)

これに気づかず30分くらいハマった。。。