Customizing TOM Templates ------------------------- So you've got a TOM up and running, and your homepage looks something like this: ![Fresh Tom](/_static/customize_templates_doc/tomhomepagenew.png) This is fine for starting out, but since you're running a TOM for a specific project, the homepage ought to reflect that. If you haven't already, please read through the [Getting Started](/introduction/getting_started) docs and return here when you have a project layout that looks something like this: ``` mytom ├── db.sqlite3 ├── manage.py └── mytom ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py ``` We are going to override the html template included with the TOM Toolkit, `tom_common/index.html`, so that we can edit some text and change the image. Overriding and extending templates is [documented extensively](https://docs.djangoproject.com/en/2.1/howto/overriding-templates/) on Django's website and we highly recommend reading these docs if you plan on customizing your TOM further. The first step is to tell Django where to look for templates you provide. In your projects `settings.py` we will edit the `DIRS` attribute of the `TEMPLATES` setting to include a folder called `templates/` under the base directory of your project. ```python TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] ``` What this means is we can now create a folder called `templates` in our project, and this is where we will place our custom templates. As mentioned before, the template we want to override is the included `tom_common/index.html` template. You can find this template in the [source code of TOM Toolkit](https://github.com/TOMToolkit/tom_base/blob/master/tom_common/templates/tom_common/index.html). Let's download and copy that template into our new `templates` folder (including the `tom_common` sub-directory) so that our directory structure now looks like this: ``` ├── db.sqlite3 ├── manage.py ├── templates │ └── tom_common │ └── index.html └── tomtest ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py ``` Now let's make a few changes to the `templates/tom_common/index.html` template: ```html {% raw %} {% extends 'tom_common/base.html' %} {% load static targets_extras tom_common_extras %} {% block title %}Home{% endblock %} {% block content %}
Project LEO is a very serious survey of the most important constellation.
templates/index.html
file or by editing your
project's urls.py
.