I believe Mezzanine already handles this case. Category pages will render an existing templates/pages/category.html, unless I am misunderstanding something. That would work nicely
if I wanted to subclass Page, rather than using Page or doing
field injection on the Page model.
templates.append(u"pages/%s/page.html" % template_name)
if page.parent is not None:
template_name = unicode(page.parent.slug)
templates.append(u"pages/%s/page.html" % template_name)
That is obviously not adequate for deeply nested pages.
best,
ken