.. _nesting: Nested Models ============= If your application uses models which have parent-child relationships, you may wish to set the ``parent`` :ref:`option <options>` to provide a more appropriate file hierarchy and cascading querysets. For example, if you have a CMS application with a ``Page`` model which may include ``Link`` objects on each page, you could set your ``Link`` ``Options`` like:: class LinkOptions(Options): parent = 'page' # name of ForeignKey field to Page # other options here... Note that the parent model must also be registered with dbgettext. This has two benefits: - child objects will only be translated if their parent is (so, for example, links from an unpublished ``Page`` will not be included if the parent's ``translate-if`` ``Option`` is set appropriately) - :doc:`dbgettext_export <dbgettext_export>` will append child output to the parent's path. For example: ``locale/dbgettext/cms/page/about_us/contact_us/link_13/`` instead of ``locale/dbgettext/cms/link/link_13/`` -- this provides additional context to the translator Note that the above example uses a customised ``get_path_identifier`` ``Option`` for ``Page`` to provide nicer a slug-based path (``about_us/contact_us`` instead of ``page_123``).