You can definitely have multiple templates. Here are several cases:
- Every 'traditional page' (i.e. loaded without ajax) can use a different view, and every view can use its own template.
- Using e.g. Angular, a front end page can be made up of different nested parts, each loaded separately. On the Django side, these will again be urls, views and templates, so you will have multiple templates per page.
- You can use a base template, which other templates extend . It's kind of like inheritance in Python or Java: the base template (parent class) has some html and some blocks (abstract methods), that other templates can fill (override). You can have multiple levels.
- You can split a template into multiple files to stay organized using 'include'.
In general I recommend using a different template for each view. Each of these templates then 'extends' a base template (perhaps with a level or two in between) where you define your page style.
For example: 'about' and 'contact' can both extend 'info_page' which extends 'base'. Meanwhile 'blog' and 'news' both extend 'feed_page' which extends 'base'.
I was a little confused what problem you're stuck on and how, so maybe I missed something. Feel free to leave a comment.