How to add a custom template page to mezzanine?

thedeepfield picture thedeepfield · May 30, 2013 · Viewed 8.5k times · Source

I've been playing around with mezzanine for a couple days and I've been following this blog, which has been very helpful.

I'm now at the point where I need to make a bunch of pages that need to be based off of a custom template. My custom template is called content.html

I've put it in myProject > myApp/theme folder > templates > pages > content.html but when I look in the admin console, I don't see content in the drop down menu.

How do I get mezzanine to recognize my content.html page as a template?

Answer

dollydagr picture dollydagr · Apr 21, 2014

content.html will not automatically appear in your site's drop down menu.

You need to go to the admin site and explicitly declare a page my content where you would like content.html to appear in your page hierarchy.

For mezzanine to match the two (i.e. template content.html and admin page my content):

  1. Either my content's Title field (in admin site) should be content,
  2. Or, URL field (in the meta data section of my content) should be content (if you decide the title will not be content),
  3. Or, if you want content.html to have a custom slug, say nicecontent, then fill URL field with nicecontent and add to url.py a pattern for content.html with a matching slug, so:

    url("^nicecontent/$", direct_to_template, {"template": "path/to/content.html"}, name="name_for_content").