Navigation Mezzanine primarily revolves around the models found in two packages, mezzanine.core and mezzanine.pages . This section describes these models and how to extend them to create your own custom content for a Mezzanine site. The foundation of a Mezzanine site is the model mezzanine.pages.models.Page . Each Page instance is stored in a hierarchical tree to form the site's navigation, and an interface for managing the structure of the navigation tree is provided in the admin via mezzanine.pages.admin.PageAdmin . All types of content inherit from the Page model and Mezzanine provides a default content type via the mezzanine.pages.models.RichTextPage model which simply contains a WYSIWYG editable field for managing HTML content. In order to handle different types of pages that require more structured content than provided by the RichTextPage model, you can simply create your own models that inherit from Page . For example if we wanted to have pages that were authors with books: from django.db import models from mezzanine.pages.models import Page # The members of Page will be inherited by the Author model, such # as title, slug, etc. For authors we can use the title field to # store the author's name. For our model definition, we just add # any extra fields that aren't part of the Page model, in this # case, date of birth. class Author ( Page ): dob = models . DateField ( "Date of birth" ) class Book ( models . Model ): author = models . ForeignKey ( "Author" ) cover