こちらで執筆されているもののうち、応用セクションのものが参考になると思われます。以下抜粋部です。
TemplateView 、というか ContextMixin の機能として、インスタンス化されたビュークラスを view という名前のテンプレート引数とするため、
python
1urls.py
2urlpatterns = [
3 url(r'^myapp/a/$', TemplateView.as_view(template_name='myapp/index.html', mode='a'),
4 name='myapp-a'),
5 url(r'^myapp/b/$', TemplateView.as_view(template_name='myapp/index.html', mode='b'),
6 name='myapp-b'), ...
このような urls にしておき、テンプレートで
python:
1myapp/index.html
2{% if view.mode == 'a' %}
3 モードA表示
4{% elif view.mode == 'b' %}
5 モードB表示
6{% endif %}
このように表示を分岐させることもできます。
ここまでが抜粋部になります。
また、質問者さんがイメージされているところと完全に一致しているかはわかりませんが、多くのログインシステムを持つサイトでは、ログインをするとサイト上部にアカウント名やアカウントメニューが表示されます。この手の表示変更ならば、継承元となるhtmlファイルにnav要素として、以下のような記述で賄うことが可能です。
html
1<nav class="nav bg-light justify-content-end">
2 <li class="nav-item justify-content-center">
3 <a class="nav-link" href="{% url 'myapp:index' %}">トップページ</a>
4 </li>
5 {% if user.is_authenticated %}
6 <li class="nav-item">
7 <a class="nav-link">こんにちは {{ user.get_username }} さん</a>
8 </li>
9 <li class="nav-item">
10 <a class="nav-link" href="{% url 'accounts:logout' %}">ログアウト</a>
11 </li>
12 {% else %}
13 <li class="nav-item">
14 <a class="nav-link">こんにちは ゲスト さん</a>
15 </li>
16 <li class="nav-item">
17 <a class="nav-link" href="{% url 'accounts:login' %}">ログイン</a>
18 </li>
19 <li class="nav-item">
20 <a class="nav-link" href="{% url 'accounts:create' %}">アカウント作成</a>
21 </li>
22 {% endif %}
23 {% block nav_item %}{% endblock %}
24</nav>
{% if user.is_authentificated %}でユーザーがログインしているかを判定して、ログインしていれば{{ user.get_username }}で名前を取得。ログインしていなければ{% else %}以下の表示が行われて、ログインを促す、といった形です。nav要素やli要素のクラスとして指定されているものはbootstrapを利用したサイト装飾のためのものとなりますので、不要であればもっとシンプルに書くことが可能です。
最後にログイン機能の実装についてですが、ネット上を探してみると、django-allauthやカスタムユーザーモデルを利用したものがよく紹介されています。外部のSNS等と連携したい場合は便利ですが、単なるサンプルサイトで既に初期マイグレーションを実行している場合は上手くいかないと思います。自分の場合は、こちらのサイトを参考にさせて頂いて実装しました。
……と、ここまで書いた上で2018年の質問であることに気づきました。おそらく質問者さんもチェックされていないと思われますが、せっかくなので投稿しておきます。同じような課題を抱えてこちらのサイトに辿り着かれた方の参考になれば幸いです。